我试图找出相关的解释变量并消除。我使用Sapply将回归应用于我感兴趣的变量,并手动删除FIV> 10的变量。但是,当我尝试重现此操作以快速运行多个vif时,我无法设法获取我的回归脚本使用包含我想保留的名称的粘贴的公式对象运行。下图:R:在Sapply中使用粘贴公式
regressiondata <- data.frame(matrix(ncol=9,nrow=100,runif(900,1,100)))
colnames(regressiondata) <- c("indep1","indep2","indep3","indep4","var1","var2","var3","var4","var5")
vifs1_model <- sapply(regressiondata[,indep_variables],function(x) vif(lm(x~var1+var2+var3+var4+var5,
data = regressiondata,
na.action=na.exclude)))
vifs1 <- rowMeans(vifs1_model)
formula_variables <- paste(names(vifs1),collapse="+")
final_model <- t(round(sapply(regressiondata[,indep_variables],
function(x) lm(x ~ formula_variables,data=regressiondata,na.action=na.exclude)$coef),2))
我跑的时候
“final_model” 我得到这个错误:
错误吨(圆(sapply(regressiondata [,indep_variables],函数(X)LM(X〜: 错误在选择函数't'的方法时评估参数'x':model.frame.default中的错误(公式= x〜formula_variables,data = regressiondata,: 可变长度不同(找到'formula_variables')