xtable
中的 Sweave
效果很棒,但每次回归都会有一个表格。您也可以将数据框作为数据框,因此我手动rbind
并paste
将结果导入数据框,但这似乎不太可扩展。
是否有更自动/更强大的解决方案,其工作方式与xtable
类似,但在多个lm
对象上?我在纸张/书籍中看到的所有表格都是手动生成的吗?我的janky代码是否有更好的解决方案,可生成数据框以提供给xtable
?
library(reshape2)
data <- data.frame(matrix(rnorm(50), 10, 5))
names(data) <- letters[1:5]
l.raw <- list()
l.raw[["a"]] <- lm(a ~ d + e, data=data)
l.raw[["b"]] <- lm(b ~ d + e, data=data)
l.raw[["c"]] <- lm(c ~ d + e, data=data)
form.table.from.lm <- function(l.raw) {
summ <- list()
for (i in names(l.raw)) {
temp <- coef(summary(l.raw[[i]]))
summ[[i]] <- data.frame(param=rownames(temp), test=i, temp)
}
df.res <- do.call("rbind", summ)
df.res <- transform(df.res, t.value = paste("(", signif(t.value), ")", sep=""), Estimate = signif(Estimate))
df.res.long <- melt(df.res, id.vars=c("test", "param"))
df.res.wide <- dcast(df.res.long, test + variable ~ param)
temp <- subset(df.res.wide, variable %in% c("Estimate", "t.value"))
df.res <- temp[, -2]
df.res[, 1] <- as.vector(rbind(names(l.raw), ""))
colnames(df.res)[1] <- "regressor"
return(df.res)
}
产生数据框:
regressor (Intercept) d e
1 a 0.393996 -0.666721 0.159508
2 (0.573926) (0.422125) (0.526446)
5 b 0.611077 0.0288942 -0.70033
6 (0.32696) (0.24048) (0.299911)
9 c -0.101033 -0.287821 0.14581
10 (0.203193) (0.149449) (0.186383)
考虑到R的精彩绘图包,我觉得google和rseek正在向我隐瞒一些东西。
答案 0 :(得分:5)
前段时间我偶然发现了保罗·约翰逊的outreg
功能。
您可以直接将outreg
应用于lm
对象并合并多个
lm
输出到一个漂亮的乳胶表中。
在这里您可以找到一个示例.pdf
和函数的代码
保罗·约翰逊的一般主页答案 1 :(得分:4)
您的代码在dcast调用中为我丢失了错误,因此我只是读取您提供的输出并调整了匹配的colnames。该代码在通过我的LaTex处理器后,在我的系统上生成格式良好的pdf文件。 (如果您已经使用Sweave,我假设您有适当的LaTeX安装。)
require(Hmisc)
latex(df.res)
当我在lme4包中传递帮助(lmList)中的示例时,latex()也会产生一个相当大且不显眼的4页显示,需要进行一些调整以扩大我的机器上的页面,但也可能值得检查。 / p>
require(lme4)
(fm1 <- lmList(Reaction ~ Days | Subject, sleepstudy))
latex(fm1)
答案 2 :(得分:1)
答案 3 :(得分:1)
查看CRAN中的apsrtable表格包创建美国政治科学评论样式表,看起来大致与我想要的一样。它需要lm和glm模型以及一些软件包中的一些非线性模型。它还有一系列用于在特定级别生成星星的选项。有a nice vingette,它会生成LaTeX和HTML表格,然后可以将它们添加到OpenOffice / Word。
我已经使用它已经有2到3年了,它仍然在积极开发中。我看起来很快,但它似乎比outreg更加坚固/特色。
答案 4 :(得分:1)
我在CRANberries看到的另一个选项让我想起了这个问题:
texreg - 看一下vingette,它似乎在R中生成相当标准的回归表并且在编写时非常活跃的开发中做得非常好。
更新:我一直在玩其中一些,我认为随着时间的推移, texreg 已经成为这个领域的领导者成熟,稳定和特色。对我来说最重要的是,它可以与各种模型配合使用,并为像lme4()
模型构建星星这样的非常方便的东西,例如bootstrap标准错误 - 这个包本身有点棘手(有充分理由)但是审稿人和期刊经常要求。我强烈建议使用texreg。它似乎得到积极维护。
答案 5 :(得分:0)
stargazer包是HTML,LaTeX或ASCII表并排使用的另一种选择。另请参阅我的answer至Table of multiple lm() models using apsrtable in Rmarkdown,其中包括屏幕截图。