2012-04-11 4 views
4

Ich habe ein sehr einfaches Problem. Ich habe einen Datenrahmen mit mehreren Zeilen und Spalten. Meine Zeilen repräsentieren Zeitpunkte. Meine Spalten sind mögliche Bedingungen und meine Zellen sind die Wahrscheinlichkeiten, dass diese Bedingungen zu einem bestimmten Zeitpunkt aufgetreten sind.Data.Frame zu PDF/HTML Tabelle mit farbigen Text

Ich möchte diese Informationen und Ausgabe in eine PDF-Tabelle. Außerdem würde ich gerne eine Färbung hinzufügen. Zum Beispiel < 60% grauer Text. 60-75 grüner Text. 75+ hellgrün.

Gibt es trotzdem etwas zu tun?

Zusätzlich wäre es möglich, eine Spalte in meiner PDF-Ausgabe, die aus horizontalen Balken besteht, zu haben. Die Größe der Balken würde auch auf meinen Zellenwerten basieren. Im Idealfall könnte ich auch eine Färbung anwenden.

+0

Verwandte Frage: http://stackoverflow.com/questions/9310971/colorize-highlight-values-of-r-ftable-output-in-knitr-sweave-rapport –

+0

Wenn HTML ist auch eine Option (wie von Ihrem Titel angedeutet) sollten Sie auch das Paket [hwriter] (http://cran.r-project.org/web/packages/hwriter/index.html) lesen. – joran

Antwort

5

Wenn Sie bereit sind, LaTeX zu verwenden, könnten Sie verwenden, gibt es a range of ways to export tables from R to LaTeX or HTML.

Wenn Sie LaTeX nicht verwenden möchten, können Sie den Unterschied in Ihren Zellen mithilfe einer Heatmap kommunizieren. Hier ist a nice example by Jason Bryer und another example.

Tabelle von Jason Bryer's blog für diejenigen, die nicht die Zeit haben, den obigen Link zu klirren. Jason Bryer's heatmap

+0

Warum ist 'Rd2roxygen' relevant? Tippfehler? –

+0

Der Link zu Jason Bryers Artikel ist kaputt, hier ist der gute Link: http://jason.bryer.org/posts/2011-11-11/visualizing-likert-items.html –

+0

@ StéphaneLaurent, thanks. Ich habe den Link aktualisiert. –

1

Ging mit ggplot und einer Heatmap.

Beispielcode unten.

df.m = melt(df) 
df.m <- ddply(df.m, .(variable), transform,rescale = scale(value)) 
pp = ggplot(df.m, aes(x = variable, y = Time, fill = rescale, label = sprintf("%1.1f%%", 100*value),size=10)) 
pp = pp + geom_tile() + geom_text(aes(size=10)) + 
scale_x_discrete(name = '', expand = c(0, 0)) + 
scale_y_discrete(name = '', expand = c(0, 0)) + 
scale_fill_gradient2(low = 'grey', high = 'steelblue') + 
theme_bw() + 
opts(legend.position = 'none', 
    panel.grid.major = theme_line(colour = NA), 
    panel.grid.minor = theme_line(colour = NA)) 
+0

Ich interessiere mich für dieses Beispiel, aber ohne "df" zu betrachten, ist es schwer zu verstehen. –

Verwandte Themen