范围的混淆矩阵

Confusion matrix for ranges

我有两个数据框,首先是我的范围格式的预测值:

structure(c("(-3,2]", "(2,7]", "(-3,2]", "(2,7]", "(-3,2]", 
"(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", 
"(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", 
"(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(2,7]"), .Dim = c(5L, 
5L), .Dimnames = list(NULL, c("Q", "Y", "S", "L", "X")))

另外一个是参考值:

structure(c("(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", 
"(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", 
"(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", 
"(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]", "(-3,2]"), .Dim = c(5L, 
 5L), .Dimnames = list(NULL, c("Q", "Y", "S", "L", "X")))

我尝试了几种方法,但我不知道如何执行混淆矩阵。谁能帮帮我吗?谢谢!

如果其中一个对象的所有值都相同,则不会太多 "confusion" 但这里的代码应该适用于更完整的列表:

table(unlist(dat2),unlist(dat1))

         (-3,2] (2,7]
  (-3,2]     22     3

根据你之前 print 编辑的数据,我得到了:

table(unlist(dat2),unlist(dat1))

         (-3,2] (2,7]
  (-3,2]     21     0
  (2,7]       2     2

如果它们是您可能不会成功的因素。可能需要 运行 lapply 使用 as.character 强制到 "character".