我有以下数据框:
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
中执行此操作的最佳方法是什么答案 0 :(得分:4)
使用table
...
table(df$v3,df$v2)
f t
0 2 1
1 0 3
答案 1 :(得分:2)
使用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