10

xtableinSweave作品很棒,但每次回归只做一张表。你也可以给它一个数据框,所以我一直在手动将结果输入数据框rbindpaste但这似乎不是很可扩展。

是否有更自动化/更强大的解决方案可以像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 对我隐瞒了一些东西。

4

6 回答 6

5

不久前,我偶然发现了outregPaul Johnson 的函数。

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

在这里您可以找到一个示例 .pdf

异常例子

和函数的代码

外代码

保罗·约翰逊的一般主页

保罗·约翰逊

于 2010-12-03T17:02:11.107 回答
4

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

require(Hmisc)
latex(df.res)

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

require(lme4)
(fm1 <- lmList(Reaction ~ Days | Subject, sleepstudy))
latex(fm1)
于 2010-12-03T17:14:23.340 回答
1

已接受答案中的 outreg 链接现在已损坏。新链接是

http://pj.freefaculty.org/stat/ps706/outreg-worked.R

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

于 2011-03-23T18:21:25.933 回答
1

查看 CRAN 中的apsrtable表格包,它创建了美国政治科学评论风格的表格,看起来大致像我认为你想要的。它需要 lm 和 glm 模型以及一些包中的一些非线性模型。它还有一系列用于在特定级别等生成星星的选项。有一个不错的 vingette,它会生成 LaTeX 和 HTML 表格,然后可以将它们添加到 OpenOffice/Word 中。

我已经使用它 2-3 年了,并且它继续处于积极开发中。我刚刚看了一下,但它似乎比 outreg 更可靠/更有特色。

于 2011-04-21T12:23:21.060 回答
1

这是我看到的CRANberries的另一个选项,让我想起了这个问题:

texreg — 看看vingette,它似乎在 R 中生成非常标准的回归表方面做得非常好,并且在撰写本文时正在非常活跃的开发中。

更新:我一直在玩其中的一些,我认为随着时间的推移,texreg在成熟度、稳定性和功能性方面已成为该领域的领导者。对我来说最重要的是,它适用于各种模型,并且可以做一些非常方便的事情,比如引导标准错误来为lme4()模型构建星星——包本身有点难以获得(有充分的理由),但审稿人和期刊经常要求尽管如此。我强烈建议使用 texreg。它似乎被积极维护。

于 2013-02-10T00:20:29.027 回答
0

stargazer将是 HTML、LaTeX 或 ASCII 表的另一种选择,并排。另请参阅我对Rmarkdown 中使用 apsrtable 的多个 lm() 模型表的回答,其中包括屏幕截图。

于 2018-08-03T12:55:44.843 回答