Estoy usando Sweave y xtable para generar un informe.
Me gustaría agregar un poco de color en una mesa. Pero no he logrado encontrar ninguna forma de generar tablas de colores con xtable.
¿Hay alguna otra opción?
Estoy usando Sweave y xtable para generar un informe.
Me gustaría agregar un poco de color en una mesa. Pero no he logrado encontrar ninguna forma de generar tablas de colores con xtable.
¿Hay alguna otra opción?
Respuestas:
A pesar de que no lo probamos esta explícitamente de la letra R (por lo general el procesamiento posterior de las Tablas en látex directamente con \rowcolor
, \rowcolors
o la colortbl paquete), creo que sería fácil de hacer esto jugando con los add.to.row
argumentos print.xtable()
. Básicamente espera dos componentes (pasados como list
): (1) número de fila y (2)mando. Tenga en cuenta que los comandos se agregan al final de las filas especificadas.
Parece funcionar, con el colortbl
paquete. Entonces, algo como esto
<<result=tex>>
library(xtable)
m <- matrix(sample(1:10,10), nr=2)
print(xtable(m), add.to.row=list(list(1),"\\rowcolor[gray]{.8} "))
@
me da
(Esta es una plantilla personalizada de Beamer, pero debería funcionar con un documento estándar. Con Beamer, probablemente desee agregar la table
opción al cargar el paquete).
Actualizar:
Siguiendo la sugerencia de @ Conjugate, también puede confiar en las instalaciones de Hmisc para el manejosalida, vea las muchas opciones de la latex()
función. Aquí hay un ejemplo de uso:
library(Hmisc)
## print the second row in bold (including row label)
form.mat <- matrix(c(rep("", 5), rep("bfseries", 5)), nr=2, byrow=TRUE)
w1 <- latex(m, rownamesTexCmd=c("","bfseries"), cellTexCmds=form.mat,
numeric.dollar=FALSE, file='/tmp/out1.tex')
w1 # call latex on /tmp/out1.tex
## highlight the second row in gray (as above)
w2 <- latex(m, rownamesTexCmd=c("","rowcolor[gray]{.8}"),
numeric.dollar=FALSE, file='/tmp/out2.tex')
w2