R中paste0函数的替代方法是什么?

时间:2017-12-07 01:45:01

标签: r r-caret

我有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返回字符数据类型。

任何帮助将不胜感激。

0 个答案:

没有答案