我正在尝试使用tabular命令在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
更改为其他对象,我想取消复制/粘贴步骤。)
我摆弄eval
和as.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"
答案 0 :(得分:0)
我在describe
包中找到了使用psych
函数的解决方法。 (最终,我想要的不仅仅是均值和sd,并且describe函数会自动计算它们。)这会创建一个data.frame,这对于转换为\ LaTeX表来说是微不足道的。