Exportación de tablas R a HTML

2 minutos de lectura

¿Hay alguna manera de exportar fácilmente tablas R a una página HTML simple?

los xtable función en el xtable El paquete puede exportar tablas R a tablas HTML. esta entrada de blog describe cómo puede crear páginas HTML a partir de documentos de Sweave.

  • print(xtable(tb), type = "html"), para ser preciso. Gracias por el enlace!

    – aL3xa

    9 de agosto de 2010 a las 8:49

Avatar de usuario de LyzandeR
LyzandeR

Vale la pena mencionar que ha habido un nuevo paquete diseñado específicamente para convertir (y diseñar con css) data.frames (o tablas) en tablas HTML de una manera fácil e intuitiva. Se llama tableHTML. Puedes ver un ejemplo sencillo a continuación:

library(tableHTML)
#create an html table 
tableHTML(mtcars)

#and to export in a file
write_tableHTML(tableHTML(mtcars), file="myfile.html")

Puedes ver un tutorial detallado aquí también.

avatar de usuario de radek
Radek

Aparte de xtable mencionado por @nullglob hay tres paquetes más que pueden ser útiles aquí:

El paquete de gramática de tablas. gt también es una opción.

Aquí esta la ejemplo de los documentos para generar una tabla HTML:

library(gt)

tab_html <-
  gtcars %>%
  dplyr::select(mfr, model, msrp) %>%
  dplyr::slice(1:5) %>%
  gt() %>%
  tab_header(
    title = md("Data listing from **gtcars**"),
    subtitle = md("`gtcars` is an R dataset")
  ) %>%
  as_raw_html()

Avatar de usuario de Ted M.
ted m

En un problema del paquete DT, alguien publicó cómo usar el paquete DT para obtener html en las tablas. Pegué el código de ejemplo relevante, modificándolo para hacer referencia a todas las columnas con: targets = "_all".

library(DT)

render <- c(
  "function(data, type, row){",
  "  if(type === 'sort'){",
  "    var parser = new DOMParser();",
  "    var doc = parser.parseFromString(data, 'text/html');",
  "    data = doc.querySelector('a').innerText;",
  "  }",
  "  return data;",
  "}"
)

dat <- data.frame(
  a = c("AAA", "BBB", "CCC"), 
  b = c(
    '<a href="#" id = "Z" onclick = "Ztest">aaaaa</a>', 
    '<a href="#" id = "A" onclick = "Atest">bbbbb</a>',
    '<a href="#" id = "J" onclick = "Jtest">jjjjj</a>'
  )
)

datatable(
  dat, 
  escape = FALSE,
  options = list(
    columnDefs = list(
      list(targets = "_all", render = JS(render))
    )
  )
)

Espero que esto ayude.

¿Ha sido útil esta solución?