【发布时间】:2021-02-11 10:16:01
【问题描述】:
我试图在循环中运行回归,变量名称在每个循环中都发生变化。类似于此设置here
最后,我想将拟合结果保存在一个列表中。
我的代码如下:
year <- rep(2014:2015, length.out = 10000)
group <- sample(c(0,1,2,3,4,5,6), replace=TRUE, size=10000)
value <- sample(10000, replace = T)
female <- sample(c(0,1), replace=TRUE, size=10000)
smoker <- sample(c(0,1), replace=TRUE, size=10000)
dta <- data.frame(year = year, group = group, value = value, female=female, smoker = smoker)
pc<- dta[, c("female", "smoker")]
names_pc <- names(pc)
m_fit <- vector("list", length(names_pc))
for (i in seq_along(names_pc)){
m <- lm(value ~ year + group + group:names_pc[i], data = dta)
m_fit[[i]] <- m$fit
}
...但有些不对劲。我收到以下错误消息。
Error in model.frame.default(formula = value ~ year + group + group:names_pc[i], :
invalid type (NULL) for variable 'names_pc[i]'
【问题讨论】: