Comment créer des tableaux colorés avec Sweave et xtable? [fermé]

17

J'utilise Sweave et xtable pour générer un rapport.

Je voudrais ajouter de la coloration sur une table. Mais je n'ai pas réussi à trouver un moyen de générer des tableaux colorés avec xtable.

Y a-t-il une autre option?

RockScience
la source
quelle est la table colorée? Cellules avec fond de couleur? Texte de cellule de couleur différente? Dans le dernier scénario, la solution peut encapsuler les valeurs avec les commandes tex appropriées.
mpiktas
J'ai besoin que l'arrière-plan d'une ligne soit d'une couleur spécifique. Dois-je réécrire une fonction xtable?
RockScience
1
xtable a déjà été réécrit (ou peut-être pré-écrit) en tant que fonction latex dans le package R Hmisc. Personnellement, je le jure pour des tables d'aspect correct. Je n'ai pas vérifié s'il a de la place pour l'astuce d'insertion fantaisie décrite ci-dessous, mais je serais surpris sinon.
conjugateprior
@Conjugate Vous avez raison, même si ce n'est pas aussi simple que je l'aurais pensé; J'ai mis à jour ma réponse avec votre suggestion.
chl
@chl «pas simple» est un euphémisme. Cette fonction est une bête, bien que très capable.
conjugateprior

Réponses:

20

\rowcolor\rowcolorsadd.to.rowprint.xtable()listLUNETEX

Cela semble fonctionner, avec le colortblpaquet. Donc, quelque chose comme ça

<<result=tex>>
library(xtable)
m <- matrix(sample(1:10,10), nr=2)
print(xtable(m), add.to.row=list(list(1),"\\rowcolor[gray]{.8} "))
@

Donne moi

entrez la description de l'image ici

(Il s'agit d'un modèle Beamer personnalisé, mais cela devrait fonctionner avec un document standard. Avec Beamer, vous souhaiterez probablement ajouter l' tableoption lors du chargement du package.)

Mise à jour:

TEXlatex()

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
chl
la source