我試圖找出相關的解釋變量並消除。我使用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')