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.3.1.9000 |
Built: | 2025-02-03 23:32:19 UTC |
Source: | https://github.com/jrdnbradford/readmdtable |
Extract Markdown Tables from Markdown Files
extract_md_tables(file, ...) extract_md_table(file, ...)
extract_md_tables(file, ...) extract_md_table(file, ...)
file |
Either a path to a file, a connection, or literal data (either
a single string or a raw vector). Files starting with |
... |
Arguments passed on to
|
extract_md_tables
captures all the markdown tables
from file
and returns a tibble or list of tibbles.
A tibble or list of tibbles extracted from the
markdown tables in file
.
md <- "# Heading 1 This example splits the `mtcars` dataset into several different tables with the same header. ## Table 1 The first table contains the initial four rows of the `mtcars` dataset. |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 | ## Table 2 The second table includes the next four rows of the dataset. |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 | ## Tables 3 and 4 The last two tables contain four and six rows, respectively. |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 | # Conclusion These four markdown tables contain the classic `mtcars` dataset." # Extract tables from the markdown file tables <- extract_md_tables(md, show_col_types = FALSE) # Display the 2nd table in the list tables[[2]]
md <- "# Heading 1 This example splits the `mtcars` dataset into several different tables with the same header. ## Table 1 The first table contains the initial four rows of the `mtcars` dataset. |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 | ## Table 2 The second table includes the next four rows of the dataset. |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 | ## Tables 3 and 4 The last two tables contain four and six rows, respectively. |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 | # Conclusion These four markdown tables contain the classic `mtcars` dataset." # Extract tables from the markdown file tables <- extract_md_tables(md, show_col_types = FALSE) # Display the 2nd table in the list tables[[2]]
Read a Markdown Table into a Tibble
read_md_table(file, warn = TRUE, force = FALSE, ...)
read_md_table(file, warn = TRUE, force = FALSE, ...)
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 if |
force |
Boolean. Should |
... |
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 raw markdown table. If file
is a
markdown file that contains more than just a table or tables, the table(s)
should be read in with extract_md_tables
instead.
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 if force
is
TRUE.
readr::read_delim
will provide its own warnings if
there are potential issues.
A tibble created from the markdown table, or NULL
.
# 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 |", warn = FALSE, force = TRUE ) # Read from a URL read_md_table( "https://raw.githubusercontent.com/jrdnbradford/readMDTable/main/inst/extdata/iris.md" ) # Get warning 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 ", force = TRUE )
# 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 |", warn = FALSE, force = TRUE ) # Read from a URL read_md_table( "https://raw.githubusercontent.com/jrdnbradford/readMDTable/main/inst/extdata/iris.md" ) # Get warning 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 ", force = TRUE )
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)