我有一个实际值向量(因子变量)a a a b b c c b c b c c ...
我有一个预测值a b b a ...
我想创建一个混淆矩阵t = table (actual, predict)
如果我打印t
,它将如下所示:
a b c
a 4 3 1
b 1 5 2
c 3 1 8
但是,我想将其打印为
b c a
b 8 2 3
c 2 3 4
a 1 2 3
(即,我想更改行和列的顺序,但将其保留为混淆矩阵)
我怎么能在R?中做到这一点?
答案 0 :(得分:3)
我们可以将列更改/转换为factor
指定的级别。
actual <- factor(actual, levels=c('b', 'c', 'a'))
predict <- factor( predict, levels = c('b', 'c', 'a'))
table(actual, predict)
# predict
#actual b c a
# b 0 1 4
# c 3 2 2
# a 2 3 3
或者我们可以使用row/column
索引
table(actual, predict)[c('b','c','a'), c('b', 'c', 'a')]
set.seed(24)
actual <- sample(letters[1:3], 20, replace=TRUE)
predict <- sample(letters[1:3], 20, replace=TRUE)