r语言 - 如何为数据帧构建混淆矩阵



我有以下数据帧:

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

最新更新