Wie erstelle ich farbige Tabellen mit Sweave und xtable? [geschlossen]


17

Ich benutze Sweave und xtable , um einen Bericht zu erstellen.

Ich möchte etwas Farbe auf eine Tabelle hinzufügen. Es ist mir aber nicht gelungen, mit xtable farbige Tabellen zu generieren.

Gibt es noch eine andere Möglichkeit?


Was ist die farbige Tabelle? Zellen mit farbigem Hintergrund? Zelltext andere Farbe? Im letzten Szenario werden die Werte möglicherweise mit den entsprechenden Tex-Befehlen umbrochen.
mpiktas

Der Hintergrund einer Zeile muss eine bestimmte Farbe haben. Muss ich eine xtable-Funktion umschreiben?
RockScience

1
xtable wurde bereits als Latex- Funktion im R-Paket Hmisc umgeschrieben (oder möglicherweise vorab geschrieben) . Persönlich schwöre ich es für richtig aussehende Tische. Ich habe nicht geprüft, ob es Platz für den unten beschriebenen ausgefallenen Einfügetrick gibt, aber ich wäre überrascht, wenn nicht.
Conjugateprior

@Conjugate Du hast recht, obwohl es nicht so einfach ist, wie ich gedacht hätte; Ich habe meine Antwort mit Ihrem Vorschlag aktualisiert.
chl

@chl "nicht einfach" ist eine Untertreibung. Diese Funktion ist eine Bestie, obwohl sie sehr fähig ist.
Conjugateprior

Antworten:


20

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

Es scheint zu funktionieren, mit dem colortblPaket. Also so etwas

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

gibt mir

Bildbeschreibung hier eingeben

(Dies ist eine angepasste Beamer-Vorlage, die jedoch mit einem Standarddokument funktionieren sollte. Bei Beamer sollten Sie die tableOption wahrscheinlich beim Laden des Pakets hinzufügen .)

Aktualisieren:

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.