如何为数据框构建混淆矩阵
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
我有以下数据框:
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