2016-10-24 59 views
0

xtable目前還不知道如何打印頻率表base::table。我現在做的是我把它轉換成數據幀,然後我更改使用colnames標題需要:r xtable和頻率表,逐行打印

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

現在,我想是打印此表橫行(像table(dset)實際輸出與標題在前面)。我試過這樣的東西

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

但是這並沒有給我想要的東西。

+0

你會考慮使用kable()或pander()嗎? pander()的輸出在HTML,PDF和MS Word中看起來相當不錯。它不需要更改打印「類型」,正如我在下面的答案中xtable所要求的那樣。在Word中沒有列名看起來有點有趣。 –

回答

1

如果您編織爲PDF,這看起來相當不錯。如果您正在編織MS Word或HTML,請指定print(dset.xtab,type =「html」)您可能無法找到那些美觀的作品。

```{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

優先級是pdf輸出,所以沒關係。實際上,如果目標只是打印表格,我發現我可以直接轉換上面的數據框(所有的數據都被強制轉換爲字符)。謝謝。順便說一下,不應該強制'dset.print [,1]' –

+0

實際上,我們需要強制'dset.print [,1]'。我沒有想到這種行爲! –

+0

我相信dset.print [,1]包含了bin標籤......你稱他們爲「smth」,對吧?他們從因素開始。如果你不強迫他們,你可能會感到困惑,因爲因素號碼將被退回。在這種情況下,{1,2,3 ...}上的smth因子和來自泊松分佈的bin分別爲{0,1,2 ...} –