stepAIC 部分需要从环境中查看数据帧,我尝试通过多种方式传递它,但存在问题。一种选择是您可以尝试并仍然得到结果:
library(purrr)
library(dplyr)
library(MASS)
list(mtcars) %>% map(~stepAIC(lm(mpg~.,data=.),trace=FALSE))
[[1]]
Call:
lm(formula = mpg ~ wt + qsec + am, data = .)
Coefficients:
(Intercept) wt qsec am
9.618 -3.917 1.226 2.936
另一种方法是,如果您想在多个数据集上运行相同的拟合,请执行以下操作:
# example dataset with bootstraps
sampledata = lapply(1:3,function(i){
mtcars[sample(nrow(mtcars),replace=TRUE),]
})
# nest it in a tibble
tibble(names=paste0("data",1:3),data=sampledata)
# A tibble: 3 x 2
names data
<chr> <list>
1 data1 <df[,11] [32 × 11]>
2 data2 <df[,11] [32 × 11]>
3 data3 <df[,11] [32 × 11]>
res = tibble(names=paste0("data",1:3),data=sampledata) %>%
mutate(mdl=map(data,~stepAIC(lm(mpg~.,data=.x),trace=FALSE)))
res$mdl
[[1]]
Call:
lm(formula = mpg ~ disp + hp + drat + wt + qsec + am + gear,
data = .x)
Coefficients:
(Intercept) disp hp drat wt qsec
-73.20988 -0.01714 0.03991 3.12230 -3.80928 4.08125
am gear
-11.24742 7.17872
[[2]]
Call:
lm(formula = mpg ~ disp + vs + am + carb, data = .x)
Coefficients:
(Intercept) disp vs am carb
26.14918 -0.02344 2.11914 5.17128 -1.25915
[[3]]
Call:
lm(formula = mpg ~ wt + qsec + am + gear + carb, data = .x)
Coefficients:
(Intercept) wt qsec am gear carb
-2.7017 -2.5837 1.4633 2.8117 1.8643 -0.8727