Frage

Wenn ich die folgende Datenrahmen genannt Ergebnis

> result
     Name       CV      LCB       UCB
1  within 2.768443 1.869964  5.303702
2 between 4.733483 2.123816 18.551051
3   total 5.483625 3.590745 18.772389

> dput(result,"")
structure(list(Name = structure(c("within", "between", "total"
), .rk.invalid.fields = list(), .Label = character(0)), CV = c(2.768443, 
4.733483, 5.483625), LCB = c(1.869964, 2.123816, 3.590745), UCB = c(5.303702, 
18.551051, 18.772389)), .Names = c("Name", "CV", "LCB", "UCB"
), row.names = c(NA, 3L), class = "data.frame")

Was ist der beste Weg, um diese Daten gut zu präsentieren? Im Idealfall würde ich eine Bilddatei wie die in einen Bericht eingefügt werden kann, oder möglicherweise eine HTML-Datei, die die Tabelle darstellen?

Zusatzpunkte für die Anzahl signifikanter Einstellung.

War es hilfreich?

Lösung

Ich würde verwenden XTABLE . Ich benutze es in der Regel mit Sweave.

library(xtable)
d <- data.frame(letter=LETTERS, index=rnorm(52)) 
d.table <- xtable(d[1:5,])
print(d.table,type="html")

Wenn Sie es in einem Sweave Dokument verwenden möchten, würden Sie es wie so verwenden:

<<label=tab1,echo=FALSE,results=tex>>=
xtable(d, caption = "Here is my caption", label = "tab:one",caption.placement = "top")
@

Andere Tipps

Für den Tisch Aspekt der XTABLE Paket kommt in dem Sinne, wie es LaTeX-Ausgabe erzeugen kann, sowie hTML (die Sie über Sweave für professionelle Berichte verwenden können).

Wenn Sie kombinieren, dass in Sweave mit ausgefallenen Graphen (andere Fragen für ggplot siehe Beispiele) Sie sind fast da.

library(ggplot2)
ggplot(result, aes(x = Name, y = CV, ymin = LCB, ymax = UCB)) + geom_errorbar() + geom_point()
ggplot(result, aes(x = Name, y = CV, ymin = LCB, ymax = UCB)) + geom_pointrange()

Ein Kommentar muss eine ziemlich Tabelle zu machen, aber die wesentlichen Zahlen zu setzen, die einfachste Sache zu tun (für diese Beispieldaten, wohlgemerkt) wäre Namen rownames und rund um die ganze Sache zu bewegen.

#Set the rownames equal to Name - assuming all unique
rownames(result) <- result$Name  
#Drop the Name column so that round() can coerce
#result.mat to a matrix
result.mat <- result[ , -1]       
round(result.mat, 2) #Where 2 = however many sig digits you want.            

Dies ist nicht eine schrecklich robuste Lösung - nicht eindeutige Namen Werte würden es brechen, glaube ich, als würde andere nicht-numerische Spalten. Aber für eine Tabelle wie Ihr Beispiel produzieren, es funktioniert der Trick.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top