簡體   English   中英

data.frame列作為R中的表格行標簽

[英]data.frame columns as tabular row labels in R

我正在嘗試使用表格命令在R / Sweave中創建表。 我希望行標簽成為數據框consca的標題。 (每列是一個問題,每一行是學生對每個問題的回答。)我使用的命令是這樣的:

latex(tabular(Heading('Questions')*(paste(labels(consca)[[2]],collapse='+')) ~ (n=1) + (mn + 
          sdev),data=consca))

引發此錯誤:

Error in term2table(rows[[i]], cols[[j]], data, n) : 
Argument paste(labels(consca)[[2]], collapse = "+") is not length 298

粘貼參數有效...

 paste(labels(consca)[[2]],collapse='+')
    [1] "Q02+Q03+Q06+Q17+Q19+Q25+Q31+Q33+Q36+Q39+Q45+Q50"

並產生我想要的輸出:

latex(tabular(Heading('Questions')*(Q02+Q03+Q06+Q17+Q19+Q25+Q31+Q33+Q36+Q39+Q45+Q50) ~ (n=1) + 
                (mn + sdev),data=consca))

但是,我想用多個比例尺執行此操作(即,我想將consca更改為其他對象,並且我想取消復制/粘貼步驟。)

我擺弄了evalas.symbol ,但無濟於事。 也許我沒有以正確的方式使用它們。

好,對於那些想要一個最小的可重現示例的人,請按以下步驟進行:

require(tables)
a <- rnorm(10)
b <- rnorm(10,2)
c <- rnorm(10,100)
x <- data.frame(a,b,c)
# This works:
tabular(a+b+c ~ (mean + sd), x)
# This fails:
tabular(paste(labels(x)[[2]],collapse='+') ~ (mean+sd),x)
# Even though:
paste(labels(x)[[2]],collapse='+')
[1] "a+b+c"

我在psych軟件包中使用describe函數找到了一種解決方法。 (最終,我想要的不僅僅是平均值和sd,而describe函數會自動計算它們。)這將創建一個data.frame,將它轉換成\\ LaTeX表很簡單。 😃

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM