我在几个不同的数据集(相同的依赖变量和独立变量)上执行相同的回归.但是,有很多自变量,我经常想测试添加/删除不同的变量.我想避免对不同的代码行进行所有这些更改,只是因为它们使用不同的数据集.我可以只复制用于创建某个对象的公式,然后使用不同的数据集创建一个新对象吗?例如,类似于:
fit1 <- lm(y ~ x1 + x2 + x3 + ..., data = dataset1)
fit2 <- lm(fit1$call, data = dataset2) # this doesn't work
fit3 <- lm(fit1$call, data = dataset3) # this doesn't work
Run Code Online (Sandbox Code Playgroud)
这样,如果我想更新大量的回归,我只需更新第一个,然后重新运行它们.
可以这样做吗?优选不使用环或糊剂().
谢谢!
或者使用 update
(fit <- lm(mpg ~ wt, data = mtcars))
# Call:
# lm(formula = mpg ~ wt, data = mtcars)
#
# Coefficients:
# (Intercept) wt
# 37.285 -5.344
update(fit, data = mtcars[mtcars$hp < 100, ])
# Call:
# lm(formula = mpg ~ wt, data = mtcars[mtcars$hp < 100, ])
#
# Coefficients:
# (Intercept) wt
# 39.295 -5.379
update(fit, data = mtcars[1:10, ])
# Call:
# lm(formula = mpg ~ wt, data = mtcars[1:10, ])
#
# Coefficients:
# (Intercept) wt
# 33.774 -4.285
Run Code Online (Sandbox Code Playgroud)
将数据集收集到a list然后使用lapply.例如:
dsets <- list(dataset1,dataset2,dataset3)
lapply(dsets, function(x) lm(y ~ x1 + x2, data=x) )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |