Estou usando Sweave e xtable para gerar um relatório.
Gostaria de adicionar um pouco de cor em uma mesa. Mas não consegui encontrar nenhuma maneira de gerar tabelas coloridas com o xtable.
Existe alguma outra opção?
Estou usando Sweave e xtable para gerar um relatório.
Gostaria de adicionar um pouco de cor em uma mesa. Mas não consegui encontrar nenhuma maneira de gerar tabelas coloridas com o xtable.
Existe alguma outra opção?
Respostas:
Embora eu não tente isso explicitamente a partir de R (I geralmente pós-processar as tabelas em Latex diretamente com \rowcolor
, \rowcolors
ou o colortbl pacote), eu acho que seria fácil de fazer isso, jogando com os add.to.row
argumentos print.xtable()
. Basicamente, espera dois componentes (passados como list
): (1) número da linha e (2) . Observe que o comando foi adicionado no final da (s) linha (s) especificada (s).
Parece funcionar, com o colortbl
pacote. Então, algo assim
<<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 dá
(Este é um modelo personalizado do Beamer, mas deve funcionar com um documento padrão. Com o Beamer, você provavelmente desejará adicionar a table
opção ao carregar o pacote.)
Atualizar:
Seguindo a sugestão do @ Conjugate, você também pode contar com os recursos do Hmisc para lidar com a saída , veja as várias opções da função. Aqui está um exemplo de uso:latex()
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