¿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
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.
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()
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.