繁体   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