将多个回归表合并为一个,以便在xtable中与R中的Swave一起使用

将多个回归表合并为一个,以便在xtable中与R中的Swave一起使用,r,sweave,xtable,R,Sweave,Xtable,swave中的xtable非常有效,但每个回归都有一个表。您也可以向它提供一个数据帧,因此我已经手动地将结果rbinding和pasteing粘贴到数据帧中,但这似乎不是非常可伸缩的 是否有一种更自动化/更健壮的解决方案,可以像xtable那样工作,但可以在多个lm对象上工作?我在论文/书籍中看到的所有表格都是手动生成的吗?对于我的janky代码,有没有更好的解决方案,可以生成一个数据帧来馈送到xtable library(reshape2) data <- data.f

swave
中的
xtable
非常有效,但每个回归都有一个表。您也可以向它提供一个数据帧,因此我已经手动地将结果
rbind
ing和
paste
ing粘贴到数据帧中,但这似乎不是非常可伸缩的

是否有一种更自动化/更健壮的解决方案,可以像
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)
}

考虑到R的惊人绘图包,我觉得google和rseek对我隐瞒了什么

不久前,我偶然发现了Paul Johnson的
outreg
函数

您可以直接将
outreg
应用于
lm
对象,并将多个
lm
输出到一个漂亮的乳胶表中

这里有一个例子.pdf

以及函数的代码

保罗·约翰逊综合主页


您的代码在dcast调用时为我抛出了错误,因此我只需读入您提供的输出并调整colname以匹配。这段代码通过LaTex处理器在我的系统上生成格式良好的pdf文件。(如果您已经在使用Swave,我假设您已经安装了适当的LaTeX。)

当我在lme4包latex()的帮助(lmList)中通过示例时,也会产生一个相当大且不合适的4页显示,需要进行一些调整以扩大我机器上的页面,但也可能值得检查

require(lme4)
(fm1 <- lmList(Reaction ~ Days | Subject, sleepstudy))
latex(fm1)
require(lme4)

(fm1已接受答案中的outreg链接现在已断开。新链接为

父文件夹中还有一个附带的PDF。

请查看CRAN中的表格包,它创建了美国政治学评论风格的表格,大致与我认为您想要的一样。它从一些包中获取lm和glm模型以及一些非线性模型。它还提供了一系列用于生成星星的选项它生成了LaTeX表和HTML表,然后可以将它们添加到OpenOffice/Word中


我已经使用它2-3年了,并且它仍在积极开发中。我只是快速浏览了一下,但它似乎比outreg更坚固/更具特色。

我看到了另外一个选项,它提醒了我这个问题:

-看看,在R中生成非常标准的回归表似乎做得非常好,在撰写本文时,该表正在积极开发中


更新:我一直在研究其中一些,我认为随着时间的推移,texreg在it成熟度、稳定性和功能性方面已经成为这一领域的领先者。对我来说,最重要的是,它可以与各种型号配合使用,并且可以做一些非常方便的事情,比如引导标准错误,为
lme4()
models——软件包本身让它变得有点棘手(有充分的理由)但是评论家和杂志经常要求。我强烈建议使用texreg。它似乎得到了积极的维护。

该软件包将是HTML、LaTeX或ASCII表的另一个选项,并排使用。另请参见我的to,其中包括一个屏幕截图。

谢谢!我不知道
lmList
。这真的会出现handy。我将重新粘贴上面的代码。这对我来说很有效,但看起来Paul Johnson的代码中有一些我正在寻找的功能(MRopa的答案)。很高兴你发现它如此有用。查看这些选项也提高了我在这方面的知识,所以我想我应该投票支持这个问题,嗯?谢谢!这应该涵盖我遇到的许多案例。对于现在(很久以后)看到这一点的人来说……看起来保罗·约翰逊现在已经结合了他的许多R片段(包括outreg)放入名为“rockchalk”的包中。文档:
require(Hmisc)
latex(df.res)
require(lme4)
(fm1 <- lmList(Reaction ~ Days | Subject, sleepstudy))
latex(fm1)