我正在尝试为一组回归创建一个观星表,其中我对数据的子集运行每个回归。我认为,做到这一点的自然方法是使用split
要从我的数据创建 data.frames 列表,请使用以下命令创建 lm 对象列表lapply
在 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")
但根据我的真实数据,我要分割的东西有几个值,我宁愿不手动将它们全部分割。任何想法为什么我收到“%错误:无法识别的对象类型”。错误?
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)