如何为数据框构建混淆矩阵

How to build a confusion matrix for a dataframe

我有以下数据框:

v1  v2  v3  v4  v5
0   t   1   12  N/A
1   t   0   34  N/A
2   t   1   45  N/A
5   f   0   76  N/A
12  f   0   98  N/A
45  t   1   45  M

我希望能够在 v2 和 v3 两列上构建以下混淆矩阵:

    t  |  f
 0  1     2
 1  3     0

在 R 中最优雅的方法是什么

这很容易用 table...

table(df$v3,df$v2)

    f t
  0 2 1
  1 0 3

使用xtabs。例如,看这个例子

> set.seed(100)
> n <- 20
> x1 <- runif(n) > .5
> x2 <- ifelse(runif(n) > .75, x1, runif(n) > .5) 
> dat <- data.frame(x1, x2)
> head(dat)
     x1    x2
1 FALSE FALSE
2 FALSE  TRUE
3  TRUE  TRUE
4 FALSE  TRUE
5 FALSE  TRUE
6 FALSE FALSE
> xtabs(~ x1 + x2, dat)
       x2
x1      FALSE TRUE
  FALSE     9    3
  TRUE      3    5