首页 > 解决方案 > 如何让我的程序运行 100 次并将结果保存在数据框中?

问题描述

我有一个程序,可以将第一步中的数据划分为训练集和测试集。之后,构建了一个决策树,我收到了一个混淆矩阵。

我现在要做的是,重复这些步骤(划分训练和测试、决策树和混淆矩阵)100 次,所以我总是得到不同的训练和测试数据集。

我想要的是获得具有混淆矩阵的准确性、敏感性和特异性的结果数据框。

准确度、灵敏度和特异性保存在向量中:

overall.accuracy <- format(overall['Accuracy'] * 100, nsmall =2, digits = 2)
overall.sensitivity <- format(cm$byClass['Sensitivity']* 100, nsmall =2, digits = 2)
overall.specificity <- format(cm$byClass['Specificity']* 100, nsmall =2, digits = 2)

我想要的输出是这样的:

> result_df

    accuracy      sensitivity    specifity 
1    30.22%          95.12%       30.23%
2    34.10%          80.12%       27.76%
3    31.56%          85.78%       28.98%
.       
.
.
100  32.33%          87.34%       29.45%

我可以使用replicate(),但我不熟悉这个功能,我不知道如何在数据框中保存每个 cylce 的准确性、灵敏度和特异性。

标签: rrepeat

解决方案


最简单的方法是使用 for 循环,即。

result_df<-matrix(ncol=3,nrow=100)
colnames(result_df)<-c("Acc","Sens","Spec")

for (i in 1:100)
{
YOUR CODE HERE
result_df[i,1] <- format(overall['Accuracy'] * 100, nsmall =2, digits = 2)
result_df[i,2] <- format(cm$byClass['Sensitivity']* 100, nsmall =2, digits = 2)
result_df[i,3] <- format(cm$byClass['Specificity']* 100, nsmall =2, digits = 2)
}

推荐阅读