我有104个使用插入符号包构建的线性模型。运行所有模型需要很长时间。 因此模型名为lmfit_r1c1,lmfit_r2c1,lmfit_r3c1 ........ lmfit_r8c1,lmfit_r1c2,lmfit_r2c2 ....... lmfit_r8c13。
模型的类是火车
> class(lmfit_r1c1)
[1] "train"
当我打印模型(比如lmfit_r1c1)时,我得到如下结果
> lmfit_r1c1
Linear Regression
30776 samples
208 predictor
Pre-processing: centered (208), scaled (208)
Resampling: Cross-Validated (5 fold)
Summary of sample sizes: 24621, 24622, 24621, 24619, 24621
Resampling results:
RMSE Rsquared MAE
0.2327991 0.8447337 0.05227046
Tuning parameter 'intercept' was held constant at a value of TRUE
我可以使用
提取RMSE和Rsquared值>lmfit_r1c1$results[c("RMSE","Rsquared")]
RMSE Rsquared
1 0.2327991 0.8447337
我希望通过运行104次for循环来为所有模型执行此操作。
我想将每个训练过的模型分配给一个临时变量,然后从中提取RMSE和Rsquared并将它们存储在一个新的数据框中,其中有两列用于RMSE和R平方。我应该得到一个维度为104的数据帧* 2。
我有一个包含
的向量v>v
[1] "r1c1" "r2c1" "r3c1" "r4c1" "r5c1" "r6c1" "r7c1" "r8c1" "r1c2" "r2c2" "r3c2"
[12] "r4c2" "r5c2" "r6c2" "r7c2" "r8c2" "r1c3" "r2c3" "r3c3" "r4c3" "r5c3" "r6c3"
[23] "r7c3" "r8c3" "r1c4" "r2c4" "r3c4" "r4c4" "r5c4" "r6c4" "r7c4" "r8c4" "r1c5"
[34] "r2c5" "r3c5" "r4c5" "r5c5" "r6c5" "r7c5" "r8c5" "r1c6" "r2c6" "r3c6" "r4c6"
[45] "r5c6" "r6c6" "r7c6" "r8c6" "r1c7" "r2c7" "r3c7" "r4c7" "r5c7" "r6c7" "r7c7"
[56] "r8c7" "r1c8" "r2c8" "r3c8" "r4c8" "r5c8" "r6c8" "r7c8" "r8c8" "r1c9" "r2c9"
[67] "r3c9" "r4c9" "r5c9" "r6c9" "r7c9" "r8c9" "r1c10" "r2c10" "r3c10" "r4c10" "r5c10"
[78] "r6c10" "r7c10" "r8c10" "r1c11" "r2c11" "r3c11" "r4c11" "r5c11" "r6c11" "r7c11" "r8c11"
[89] "r1c12" "r2c12" "r3c12" "r4c12" "r5c12" "r6c12" "r7c12" "r8c12" "r1c13" "r2c13" "r3c13"
[100] "r4c13" "r5c13" "r6c13" "r7c13" "r8c13"
我试过这样的事情:
new_df <- data.frame(matrix(nrow = 104,ncol=2))
colnames(new_df)<-c("RMSE","R-squared")
for (i in 1:104) {
assign(fit,paste0("lmfit_",v[i]))
new_df[i,] <- fit$results[c("RMSE","Rsquared")]
}
显然这不起作用,因为paste0返回字符数据类型。
任何帮助将不胜感激。