2016-10-24 3 views
0

xtable weiß im Moment nicht, wie man Tabellen von Frequenzen aus base::table druckt. Was ich jetzt tun ist, ich es zu einem Datenrahmen konvertieren und dann ändere ich die Überschriften mit colnames nach Bedarf:r xtable und frequenztabelle, reihenweise drucken

dset <- data.frame(rpois(100, 1)) 
dset.print <- as.data.frame(table(dset)) 
colnames(dset.print) <- c("smth", "freq") 
xtable(dset.print) 

Nun, was Ich mag würde, ist diese Tabelle zeilenweise drucken (wie die tatsächliche Ausgabe von table(dset) mit die Überschriften an der Vorderseite). Ich habe so etwas versucht

dset.print <- t(as.matrix(table(dset))) 
dset.print <- cbind(c("smth", "freq"), as.data.frame(dset.print)) 

Aber das gab nicht genau das, was ich wollte.

+0

Möchten Sie kable() oder pander() verwenden? Die Ausgabe von pander() sieht in HTML, PDF und MS Word ziemlich gut aus. Es muss nicht der Drucktyp "type" geändert werden, wie es in meiner Antwort unten in xtable erforderlich ist. Das Fehlen von Spaltennamen sieht in Word ein wenig komisch aus. –

Antwort

1

Das sieht ziemlich gut aus, wenn Sie nach PDF stricken. Wenn Sie zu MS Word oder HTML stricken, spezifizieren Sie print (dset.xtab, type = "html") Sie können die Ästhetik von diesen als nett nicht finden.

```{r xtable, echo=FALSE, message=FALSE, warning=FALSE, results='asis'} 
library(xtable) 

dset <- data.frame(rpois(100, 1)) 

dset.print <- as.data.frame(table(dset)) 
dset.print <- rbind.data.frame(as.character(dset.print[,1]), dset.print[,2]) 
names(dset.print) <- rep('', ncol(dset.print)) 
rownames(dset.print) <- c('smth', 'freq') 

dset.xtab <- xtable(dset.print) 

print(dset.xtab) 

``` 
+0

Priorität ist PDF-Ausgabe, also ist es in Ordnung. Tatsächlich fand ich heraus, dass ich den obigen Datenrahmen direkt umsetzen konnte (alle Daten werden nur in char umgewandelt), wenn das Ziel nur darin besteht, die Tabelle zu drucken. Vielen Dank. Übrigens, es sollte nicht nötig sein, 'dset.print [, 1]' zu erzwingen. –

+0

Eigentlich muss man 'dset.print [, 1]' erzwingen. Ich habe dieses Verhalten nicht erwartet! –

+0

Ich glaube dset.print [, 1] enthält die bin-Etiketten ... du nennst sie 'smth', oder? Sie beginnen als Faktoren. Wenn Sie sie nicht zwingen, könnten Sie wirklich verwirrt werden, weil die Faktorzahlen zurückgegeben werden. In diesem Fall sind die smt-Faktoren bei {1,2,3 ...} und die Bins aus der Poisson-Verteilung {0,1,2 ...} –

Verwandte Themen