r - 使用 lapply 进行公式改变的多元回归,而不是数据集

标签 r regression lapply stargazer

我见过一个 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")

最佳答案

这应该有效:

fit <- lapply(myvars, function(dvar) lm(eval(paste0(dvar,' ~ wt')), data = Boston))

关于r - 使用 lapply 进行公式改变的多元回归,而不是数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42102014/

相关文章:

r - 在 lapply 中指定 X 提供的参数

r - 如何将具有几行代码的字符数组转换为 data.frame?

r - 在栅格列表列表上执行循环

r - 测试 dplyr 中列子集的相等性

r - 为什么直接调用 mget() 与在另一个函数中调用 mget() 时,data.table j 有不同的环境?

python - 将不同的分类变量转换为虚拟变量

python - Scikit-learn:权重在岭回归中的作用

performance - 避免在 R 中按行处理 data.frame

R data.table滑动窗口

python : How to interpret the result of logistic regression by sm. 登录