我想打印2 * 2混淆矩阵并贴上标签。我在r中使用table()



我想添加预测和现实标签。有人可以建议我,我该怎么办?

最佳答案

这与this question中的问题类似。您可以采用这种方法,
但仅使用矩阵来保存值就可以简化一点,并且
只需将其尺寸名称设置为"predicted""observed"

# create some fake data (2x2, since we're building a confusion matrix)
dat <- matrix(data=runif(n=4, min=0, max=1), nrow=2, ncol=2,
              dimnames=list(c("pos", "neg"), c("pos", "neg")))

# now set the names *of the dimensions* (not the row/colnames)
names(dimnames(dat)) <- c("predicted", "observed")

# and we get what we wanted
dat

# output:
#             observed
#   predicted       pos       neg
#         pos 0.8736425 0.7987779
#         neg 0.2402080 0.6388741


更新:@thelatemail在注释中很好地说明了您可以在创建表时指定维名称的问题。矩阵也是如此,只是在调用dimnames时将它们作为matrix()列表元素的名称提供。因此,这是一种更为紧凑的方法:

matrix(data=runif(n=4, min=0, max=1), nrow=2, ncol=2,
       dimnames=list(predicted=c("pos", "neg"), observed=c("pos", "neg")))

08-16 13:52