Title: | Read Markdown Tables into Tibbles |
---|---|
Description: | Efficient reading of raw markdown tables into tibbles. Designed to accept content from strings, files, and URLs with the ability to extract and read multiple tables from markdown for analysis. |
Authors: | Jordan Bradford [aut, cre, cph] |
Maintainer: | Jordan Bradford <[email protected]> |
License: | GPL (>= 3) |
Version: | 0.2.0.9000 |
Built: | 2024-10-30 06:45:02 UTC |
Source: | https://github.com/jrdnbradford/readmdtable |
Extract Markdown Tables from Markdown Files
extract_md_tables(file, warn = TRUE, ...)
extract_md_tables(file, warn = TRUE, ...)
file |
Either a path to a file, a connection, or literal data (either
a single string or a raw vector). Files starting with |
warn |
Boolean. Should warnings be raised about possible issues with
the passed |
... |
Arguments passed on to
|
extract_md_tables
attempts to capture all the markdown
tables from file
utilizing a regular expression and therefore
requires that the tables follow the markdown table format much
more closely than readMDTable::read_md_table
.
A tibble or list of tibbles.
md <- "# Heading 1 We'll split the `mtcars` dataset for testing `extract_md_tables`. ## Heading 2 |model |mpg |cyl|disp |hp |drat|wt |qsec |vs |am |gear|carb| |-------------------|----|---|-----|---|----|-----|-----|---|---|----|----| |Mazda RX4 |21 |6 |160 |110|3.9 |2.62 |16.46|0 |1 |4 |4 | |Mazda RX4 Wag |21 |6 |160 |110|3.9 |2.875|17.02|0 |1 |4 |4 | |Datsun 710 |22.8|4 |108 |93 |3.85|2.32 |18.61|1 |1 |4 |1 | |Hornet 4 Drive |21.4|6 |258 |110|3.08|3.215|19.44|1 |0 |3 |1 | ## Another Heading 2 Another paragraph. With some lines. Like this one. |model |mpg |cyl|disp |hp |drat|wt |qsec |vs |am |gear|carb| |-------------------|----|---|-----|---|----|-----|-----|---|---|----|----| |Hornet Sportabout |18.7|8 |360 |175|3.15|3.44 |17.02|0 |0 |3 |2 | |Valiant |18.1|6 |225 |105|2.76|3.46 |20.22|1 |0 |3 |1 | |Duster 360 |14.3|8 |360 |245|3.21|3.57 |15.84|0 |0 |3 |4 | |Merc 240D |24.4|4 |146.7|62 |3.69|3.19 |20 |1 |0 |4 |2 | Just some paragraph text here. |model |mpg |cyl|disp |hp |drat|wt |qsec |vs |am |gear|carb| |-------------------|----|---|-----|---|----|-----|-----|---|---|----|----| |Cadillac Fleetwood |10.4|8 |472 |205|2.93|5.25 |17.98|0 |0 |3 |4 | |Lincoln Continental|10.4|8 |460 |215|3 |5.424|17.82|0 |0 |3 |4 | |Chrysler Imperial |14.7|8 |440 |230|3.23|5.345|17.42|0 |0 |3 |4 | |Fiat 128 |32.4|4 |78.7 |66 |4.08|2.2 |19.47|1 |1 |4 |1 | |model |mpg |cyl|disp |hp |drat|wt |qsec |vs |am |gear|carb| |-------------------|----|---|-----|---|----|-----|-----|---|---|----|----| |Porsche 914-2 |26 |4 |120.3|91 |4.43|2.14 |16.7 |0 |1 |5 |2 | |Lotus Europa |30.4|4 |95.1 |113|3.77|1.513|16.9 |1 |1 |5 |2 | |Ford Pantera L |15.8|8 |351 |264|4.22|3.17 |14.5 |0 |1 |5 |4 | |Ferrari Dino |19.7|6 |145 |175|3.62|2.77 |15.5 |0 |1 |5 |6 | |Maserati Bora |15 |8 |301 |335|3.54|3.57 |14.6 |0 |1 |5 |8 | |Volvo 142E |21.4|4 |121 |109|4.11|2.78 |18.6 |1 |1 |4 |2 |" # Extract tables from the markdown file tables <- extract_md_tables(md) # Display the 2nd table in the list tables[[2]]
md <- "# Heading 1 We'll split the `mtcars` dataset for testing `extract_md_tables`. ## Heading 2 |model |mpg |cyl|disp |hp |drat|wt |qsec |vs |am |gear|carb| |-------------------|----|---|-----|---|----|-----|-----|---|---|----|----| |Mazda RX4 |21 |6 |160 |110|3.9 |2.62 |16.46|0 |1 |4 |4 | |Mazda RX4 Wag |21 |6 |160 |110|3.9 |2.875|17.02|0 |1 |4 |4 | |Datsun 710 |22.8|4 |108 |93 |3.85|2.32 |18.61|1 |1 |4 |1 | |Hornet 4 Drive |21.4|6 |258 |110|3.08|3.215|19.44|1 |0 |3 |1 | ## Another Heading 2 Another paragraph. With some lines. Like this one. |model |mpg |cyl|disp |hp |drat|wt |qsec |vs |am |gear|carb| |-------------------|----|---|-----|---|----|-----|-----|---|---|----|----| |Hornet Sportabout |18.7|8 |360 |175|3.15|3.44 |17.02|0 |0 |3 |2 | |Valiant |18.1|6 |225 |105|2.76|3.46 |20.22|1 |0 |3 |1 | |Duster 360 |14.3|8 |360 |245|3.21|3.57 |15.84|0 |0 |3 |4 | |Merc 240D |24.4|4 |146.7|62 |3.69|3.19 |20 |1 |0 |4 |2 | Just some paragraph text here. |model |mpg |cyl|disp |hp |drat|wt |qsec |vs |am |gear|carb| |-------------------|----|---|-----|---|----|-----|-----|---|---|----|----| |Cadillac Fleetwood |10.4|8 |472 |205|2.93|5.25 |17.98|0 |0 |3 |4 | |Lincoln Continental|10.4|8 |460 |215|3 |5.424|17.82|0 |0 |3 |4 | |Chrysler Imperial |14.7|8 |440 |230|3.23|5.345|17.42|0 |0 |3 |4 | |Fiat 128 |32.4|4 |78.7 |66 |4.08|2.2 |19.47|1 |1 |4 |1 | |model |mpg |cyl|disp |hp |drat|wt |qsec |vs |am |gear|carb| |-------------------|----|---|-----|---|----|-----|-----|---|---|----|----| |Porsche 914-2 |26 |4 |120.3|91 |4.43|2.14 |16.7 |0 |1 |5 |2 | |Lotus Europa |30.4|4 |95.1 |113|3.77|1.513|16.9 |1 |1 |5 |2 | |Ford Pantera L |15.8|8 |351 |264|4.22|3.17 |14.5 |0 |1 |5 |4 | |Ferrari Dino |19.7|6 |145 |175|3.62|2.77 |15.5 |0 |1 |5 |6 | |Maserati Bora |15 |8 |301 |335|3.54|3.57 |14.6 |0 |1 |5 |8 | |Volvo 142E |21.4|4 |121 |109|4.11|2.78 |18.6 |1 |1 |4 |2 |" # Extract tables from the markdown file tables <- extract_md_tables(md) # Display the 2nd table in the list tables[[2]]
Read a Markdown Table into a Tibble
read_md_table(file, warn = TRUE, ...)
read_md_table(file, warn = TRUE, ...)
file |
Either a path to a file, a connection, or literal data (either
a single string or a raw vector). Files starting with |
warn |
Boolean. Should warnings be raised about possible issues with
the passed |
... |
Arguments passed on to
|
read_md_table
reads a markdown table into a tibble from a string,
file, or URL. It uses readr::read_delim
to efficiently read in data.
read_md_table
expects file
to be a markdown table. If file
is a
markdown file that contains more than just a table or tables, the table(s)
should be extracted with extract_md_tables
before reading
them in.
If warn
is TRUE
, read_md_table
will warn if there are potential
issues with the provided markdown table. Depending on the issue,
read_md_table
may still correctly read the table. For instance, if the
row separating the header from the other rows is malformed or any rows
have missing leading or trailing pipes, warnings will be raised but the
data will be read correctly. readr::read_delim
will provide its own
warnings if there are potential issues.
A tibble created from the markdown table.
# Read from a file read_md_table(read_md_table_example("mtcars.md")) # Read from a string read_md_table("| H1 | H2 | \n|-----|-----|\n| R1C1 | R1C2 |\n| R2C1 | R2C2 |") # Read from a URL read_md_table( "https://raw.githubusercontent.com/jrdnbradford/readMDTable/main/inst/extdata/iris.md" ) # Get warnings for malformed tables read_md_table( "| Name | Age | City | Date | |-------|-----|-------------|------------| | Alice | 30 | New York | 2021/01/08 | | Bob | 25 | Los Angeles | 2023/07/22 | Carol | 27 | Chicago | 2022/11/01 " )
# Read from a file read_md_table(read_md_table_example("mtcars.md")) # Read from a string read_md_table("| H1 | H2 | \n|-----|-----|\n| R1C1 | R1C2 |\n| R2C1 | R2C2 |") # Read from a URL read_md_table( "https://raw.githubusercontent.com/jrdnbradford/readMDTable/main/inst/extdata/iris.md" ) # Get warnings for malformed tables read_md_table( "| Name | Age | City | Date | |-------|-----|-------------|------------| | Alice | 30 | New York | 2021/01/08 | | Bob | 25 | Los Angeles | 2023/07/22 | Carol | 27 | Chicago | 2022/11/01 " )
Get Path to readMDTable Examples
read_md_table_example(file = NULL)
read_md_table_example(file = NULL)
file |
Name of file. If |
readMDTable comes with a number of well-known datasets as example
markdown tables in the inst/extdata
directory. read_md_table_example
will list the file names or return the path of a specified file.
Vector of example file names if file
is NULL
, else the path
to the example markdown table file.
# List the available example files read_md_table_example() # Get the path to the mtcars example file read_md_table_example("mtcars.md") # Read in an example file mtcars_path <- read_md_table_example("mtcars.md") read_md_table(mtcars_path)
# List the available example files read_md_table_example() # Get the path to the mtcars example file read_md_table_example("mtcars.md") # Read in an example file mtcars_path <- read_md_table_example("mtcars.md") read_md_table(mtcars_path)