使用缺少值的table()问题在R中创建混淆矩阵



Hi我有两个向量:预测和目标,我有三个类"A"B";以及";C";。

targets = c("B", "A", "C", "C", "B")
predicts = c("B", "B", "C", "C", "B")

我想用这些数据创建混淆矩阵。我希望我的输出看起来像这样:

A B C
A 0 1 0
B 0 2 0
C 0 0 2

但对于table(targets, predicts),我得到了这个:

B C
A 1 0
B 2 0
C 0 2

当缺少类时,是否可以用默认值填充表,例如0?

我们可以转换为factor,将levels指定为两个数据集中的所有unique值,然后使用table

lvls <- sort(union(targets, predicts))
table(factor(targets,levels = lvls), factor(predicts, levels = lvls))

-输出

A B C
A 0 1 0
B 0 2 0
C 0 0 2

最新更新