Using stargazer with a list of lm objects created by lapply-ing over a split data.frame
我正在尝试为一组回归创建观星表,在该表中,我对数据的一个子集运行了每个回归。 我认为,执行此操作的自然方法是使用
1 2 3 4 5 6 7 8 9 10 11 12 | 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. |
如果我将它们手动分割,效果很好:
1 2 3 4 5 | # 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暗示,并通过仔细阅读
1 2 3 4 | fit <- lapply(by.river, function(dd)lm(crim ~ indus,data=dd)) stargazer(fit, type ="text") fit[[1]]$call #lm(formula = crim ~ indus, data = dd) |