【发布时间】:2017-06-25 09:57:59
【问题描述】:
我看到了一个 list apply (lapply) 的示例,它可以很好地获取数据对象列表, 并返回一个回归输出列表,我们可以将其传递给 Stargazer 以获得格式良好的输出。 Using stargazer with a list of lm objects created by lapply-ing over a split data.frame
library(MASS)
library(stargazer)
data(Boston)
by.river <- split(Boston, Boston$chas)
class(by.river)
fit <- lapply(by.river, function(dd)lm(crim ~ indus,data=dd))
stargazer(fit, type = "text")
我想做的是,而不是传递数据集列表来对每个数据集进行相同的回归(如上), 传递自变量列表以对同一数据集进行不同的回归。长期来看,它看起来像这样:
fit2 <- vector(mode = "list", length = 2)
fit2[[1]] <- lm(nox ~ indus, data = Boston)
fit2[[2]] <- lm(crim ~ indus, data = Boston)
stargazer(fit2, type = "text")
使用 lapply,我试过了,但它不起作用。我哪里做错了?
myvarc <- c("nox","crim")
class(myvarc)
myvars <- as.list(myvarc)
class(myvars)
fit <- lapply(myvars, function(dvar)lm(dvar ~ indus,data=Boston))
stargazer(fit, type = "text")
【问题讨论】:
-
这可行,但不整洁(使用列号而不是名称,不保留名称作为 stargazer 输出的标题)
fit3 = lapply(Boston[,c(1,5)], function(x)(lm(x ~ Boston$indus))) stargazer(fit3, type = "text") -
问题解决如下。然而,这些标签并不能很好地流向 Stargazer。这段代码将解决这个问题。
stargazer(fit, type = "text", dep.var.labels.include = FALSE, column.labels = myvarc)
标签: r regression lapply stargazer