将 stargazer 与通过 lapply-ing 在拆分 data.frame 上创建的 lm 对象列表一起使用
Using stargazer with a list of lm objects created by lapply-ing over a split data.frame
我正在尝试为一组回归创建一个观星者 table,其中我 运行 对我的数据子集进行每个回归。我认为,执行此操作的自然方法是使用 split
从我的数据中创建一个 data.frames 列表,通过在列表中使用 lapply
创建一个 lm 对象列表data.frames,然后将该列表提供给 stargazer
。例如,
library(MASS)
library(stargazer)
data(Boston)
# This doesn't work
by.river <- split(Boston, Boston$chas)
fit <- lapply(by.river, lm, formula = crim ~ indus)
stargazer(fit, type = "text")
# % Error: Unrecognized object type.
# % Error: Unrecognized object type.
如果我手动将它们分开,效果很好:
# This works
fit2 <- vector(mode = "list", length = 2)
fit2[[1]] <- lm(crim ~ indus, data = Boston, subset = (chas == 0))
fit2[[2]] <- lm(crim ~ indus, data = Boston, subset = (chas == 1))
stargazer(fit2, type = "text")
但是根据我的真实数据,我要拆分的东西有几个值,我宁愿不手动拆分它们。我收到“% Error: Unrecognized object type”的任何想法。错误?
有一个简单的解决方法,由 BondedDust 暗示并通过仔细阅读 lapply
的帮助提出建议。
fit <- lapply(by.river, function(dd)lm(crim ~ indus,data=dd))
stargazer(fit, type = "text")
fit[[1]]$call
#lm(formula = crim ~ indus, data = dd)
我正在尝试为一组回归创建一个观星者 table,其中我 运行 对我的数据子集进行每个回归。我认为,执行此操作的自然方法是使用 split
从我的数据中创建一个 data.frames 列表,通过在列表中使用 lapply
创建一个 lm 对象列表data.frames,然后将该列表提供给 stargazer
。例如,
library(MASS)
library(stargazer)
data(Boston)
# This doesn't work
by.river <- split(Boston, Boston$chas)
fit <- lapply(by.river, lm, formula = crim ~ indus)
stargazer(fit, type = "text")
# % Error: Unrecognized object type.
# % Error: Unrecognized object type.
如果我手动将它们分开,效果很好:
# This works
fit2 <- vector(mode = "list", length = 2)
fit2[[1]] <- lm(crim ~ indus, data = Boston, subset = (chas == 0))
fit2[[2]] <- lm(crim ~ indus, data = Boston, subset = (chas == 1))
stargazer(fit2, type = "text")
但是根据我的真实数据,我要拆分的东西有几个值,我宁愿不手动拆分它们。我收到“% Error: Unrecognized object type”的任何想法。错误?
有一个简单的解决方法,由 BondedDust 暗示并通过仔细阅读 lapply
的帮助提出建议。
fit <- lapply(by.river, function(dd)lm(crim ~ indus,data=dd))
stargazer(fit, type = "text")
fit[[1]]$call
#lm(formula = crim ~ indus, data = dd)