跨多对列应用 confusionMatrix R 函数,将输出保存在列表或 tidy df 中

Apply confusionMatrix R function across multiple pairs of columns, saving output in lists or tidy df

我想跨多个列应用 caret 的 confusionMatrix 函数,将结果保存在数据框中。

我有两个相同格式的数据框 - "actuals" 和 "predictions"。它们看起来像这样:

x1   x2   x3   x4
 N    N    S    E
 E    W    E    E
 N    W    E    E

等...对于很多行,每列有4个级别,还有很多列

我想使用 confusionMatrix 比较两个数据框的相应列。我可以逐列执行此操作,例如从第 1 列开始:

confusionMatrix(predictions[,1], actuals[,1])

但我不想逐一查看每一列,而是想将 confusionMatrix 应用于两个数据框中的所有对应列。

理想情况下,我希望将输出保存在某种列表或数据框中,以便我可以轻松地从 confusionMatrix(例如 kappa 或灵敏度)中提取特定输出以进行所有比较。我已经使用 purrr 和 broom 对线性模型的输出做了类似的事情,但是这里的输入完全不同,我一直没能找到一种方法来让它工作。

非常感谢

a <- list()

for (i in 1:ncol(predictions))
    {
      a[[i]] <- confusionMatrix(predictions[,i], actuals[,i])
    }

print(a)