inst/doc/rvest-benchmarks.R

## ----options, include = FALSE-------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.width = 9,
  fig.height = 3
)

## ----save-plot, include = FALSE-----------------------------------------------

save_plot <- function(resp, num) {
  ggplot2::ggsave(
    filename = paste0("vignettes/img/benchmark-", num, ".png"),
    plot     = ggplot2::autoplot(resp),
    width    = 6,
    height   = 2,
    dpi      = 300
  )
}


## ----functions-tested---------------------------------------------------------
library(readMDTable)

test_extract_md_tables <- function(content) {
  extract_md_tables(content, show_col_types = FALSE)
}

test_read_md_table <- function(content) {
  read_md_table(content, show_col_types = FALSE)
}

test_rvest <- function(content) {
  rvest::read_html(content) |> rvest::html_table()
}

## ----benchmark-1, eval = FALSE------------------------------------------------
# mtcars_split_raw_md_url <- "https://raw.githubusercontent.com/jrdnbradford/readMDTable/refs/heads/main/inst/extdata/mtcars-split.md"
# mtcars_split_html_url <- "https://github.com/jrdnbradford/readMDTable/blob/main/inst/extdata/mtcars-split.md"
# 
# resp <- microbenchmark::microbenchmark(
#   test_extract_md_tables(mtcars_split_raw_md_url),
#   test_rvest(mtcars_split_html_url),
#   times = 100
# )
# 
# ggplot2::autoplot(resp)

## ----benchmark-1-img, out.height = '250px', echo = FALSE, fig.alt = "Violin plot showing that extract_md_tables is faster than rvest"----
knitr::include_graphics("img/benchmark-1.png")

## ----benchmark-2, eval = FALSE------------------------------------------------
# mtcars_raw_md_url <- "https://raw.githubusercontent.com/jrdnbradford/readMDTable/refs/heads/main/inst/extdata/mtcars.md"
# mtcars_html_url <- "https://github.com/jrdnbradford/readMDTable/blob/main/inst/extdata/mtcars.md"
# 
# resp <- microbenchmark::microbenchmark(
#   test_read_md_table(mtcars_raw_md_url),
#   test_rvest(mtcars_html_url),
#   times = 100
# )
# 
# ggplot2::autoplot(resp)

## ----benchmark-2-img, out.height = '250px', echo = FALSE, fig.alt = "Violin plot showing that read_md_table is faster than rvest"----
knitr::include_graphics("img/benchmark-2.png")

## ----benchmark-3, eval = FALSE------------------------------------------------
# mtcars_raw_md_file <- readr::read_file(mtcars_split_raw_md_url)
# mtcars_html_file <- readr::read_file(mtcars_split_html_url)
# 
# resp <- microbenchmark::microbenchmark(
#   test_extract_md_tables(mtcars_raw_md_file),
#   test_rvest(mtcars_html_file),
#   times = 100
# )
# 
# ggplot2::autoplot(resp)

## ----benchmark-3-img, out.height = '250px', echo = FALSE, fig.alt = "Violin plot showing that rvest is faster than extract_md_tables"----
knitr::include_graphics("img/benchmark-3.png")

## ----benchmark-4, eval = FALSE------------------------------------------------
# raw_md <- readr::read_file(mtcars_raw_md_url)
# html <- readr::read_file(mtcars_html_url)
# 
# resp <- microbenchmark::microbenchmark(
#   test_read_md_table(raw_md),
#   test_rvest(html),
#   times = 100
# )
# 
# ggplot2::autoplot(resp)

## ----benchmark-4-img, out.height = '250px', echo = FALSE, fig.alt = "Violin plot showing that rvest is slighlty faster than read_md_table"----
knitr::include_graphics("img/benchmark-4.png")

Try the readMDTable package in your browser

Any scripts or data that you put into this service are public.

readMDTable documentation built on June 8, 2025, 1:29 p.m.