将几个回归表合并为一个用于xtable中的Swetable和R中的Sweave

Ric*_*ron 10 r sweave xtable

xtableSweave工作中很棒,但每回归一张表.你可以给它一个数据帧,也一样,所以我一直在手动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)
}
Run Code Online (Sandbox Code Playgroud)

哪个产生数据帧:

   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)
Run Code Online (Sandbox Code Playgroud)

考虑到R的惊人绘图包,我觉得google和rseek正在隐藏一些东西.

mro*_*opa 5

不久之前,我偶然发现outreg了保罗约翰逊的功能.

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

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

outreg的例子

和函数的代码

outreg代码

Paul Johnson的一般主页

保罗约翰逊

  • 对于那些现在看到这一点的人(很久以后)......看起来保罗·约翰逊现在将他的许多R片段(包括outreg)中的一些组合成一个名为"rockchalk"的包.文档:http://pj.freefaculty.org/R/rockchalk.pdf (2认同)