Estoy empezando a aprender sobre KnitR y el uso de Markdown para generar informes y documentos R. Esto parece perfecto para gran parte de los informes diarios que tengo que hacer con mi trabajo. Sin embargo, una cosa que no veo es una manera fácil de imprimir marcos de datos y tablas usando el formato Markdown (algo así como xtable
, pero con Markdown en lugar de LaTeX o HTML). Sé que puedo incrustar la salida HTML de xtable, pero me preguntaba si había alguna solución basada en Markdown.
r
markdown
knitr
r-markdown
TARehman
fuente
fuente
print(xtable(data), type = "html")
.knitr
, así que envié una solicitud de extracciónpander
para agregar el estilo de la tabla. En futuras versiones depander
, debería poder hacerlopandoc.table(iris, style="rmarkdown")
pander
debería estar en CRAN. pandoc es un programa escrito en Haskell que convierte hacia y desde una amplia variedad de formatos diferentes, no es específico de R de ninguna manera.pander
, que no estaba en CRAN la última vez que escuché, nopandoc
. Mi culpa. :)Respuestas:
Ahora
knitr
(desde la versión 1.3) el paquete incluye lakable
función para crear tablas:ACTUALIZADO : si obtiene una rebaja sin formato en un documento, intente configurar la
results = "asis"
opción de fragmento.fuente
format
argumento, ya que knitr conoce el formato de salida y lo configurará automáticamenteresults = asis
.results = 'asis'
Dos paquetes que harán esto son pander
O ascii
pander
es un enfoque ligeramente diferente para la construcción de informes (pero puede ser útil para esta función).ascii
le permitiráprint
contype = 'pandoc
(o varios otros sabores de rebajas)Tenga en cuenta que en ambos casos, está dirigido a usar
pandoc
para convertir de markdown al tipo de documento deseado, sin embargo, el usostyle='rmarkdown'
creará tablas que son compatibles con estemarkdown
paquete y la conversión incorporada enrstudio
.fuente
pander
: puede producir lasrmarkdown
tablas con estilo también junto a otras, por ejemplo:pander(head(iris[,1:3]), style = 'rmarkdown')
Solo quería actualizar esto con lo que decidí hacer. Estoy usando el
hwriter
paquete en este momento para imprimir tablas, y estoy usando las funcionesrow.*
ycol.*
para poner clases CSS en diferentes elementos. Luego, escribí CSS personalizado para hacer mi pantalla como quería. Entonces, aquí hay un ejemplo en caso de que alguien más esté lidiando con algo similar.Primero, cree un archivo que hará
knitting
y cambiará el Markdown a HTML:A continuación, cree el archivo de Markdown real:
Finalmente, simplemente cree un archivo CSS personalizado.
La ejecución
./file_knit.r
me da file.html, que se ve así:Así que, con suerte, esto podría ser útil para otros que quieran un poco más de formato en la salida de Markdown.
fuente
Hay funciones en el
pander
paquete:fuente
pander
:) Tenga en cuenta que también puede utilizar el método S3 genérico para guardar algunos caracteres para escribir, como:pander(head(iris)[, 1:3])
No es muy difícil crear su propia función personalizada. Aquí hay una prueba de concepto muy simple para generar una tabla rmarkdown de a
data.frame
:En el documento .Rmd, entonces usaría la función con
results = 'asis'
:El código anterior le daría la siguiente figura (en el ejemplo, esta es la salida en pdf, pero como la tabla está en markdwon, también puede tejer en html o word).
Desde aquí, y leyendo el código de otras personas, puede descubrir cómo manipular el texto para generar la tabla que desea y crear funciones más personalizadas.
fuente
use una combinación de knitr :: kable y xtable en su documento de rebajas.
para un data.frame simple -
format="pandoc"
permite más opciones como subtítulos.Ahora la combinación para el resumen del modelo .
para obtener aún más opciones, consulte el
stargazer
paquete en lugar dextable
.ejemplo para uso personal
fuente
Para escribir / crear tablas de Markdown en R, también puede usar MarkdownReports '
MarkDown_Table_writer_DF_RowColNames()
oMarkDown_Table_writer_NamedVector()
funciones. Simplemente pasa un marco de datos / matriz con nombres de dimensión, o un vector con nombres, y analiza y escribe la tabla en formato Markdown.fuente
Mi función para Gitlab:
fuente