【发布时间】:2018-03-01 16:48:12
【问题描述】:
我的数据框 df 目前看起来像这样:
cat 1 2 3 4
1 a 0 1 0 1
2 b 0 0 1 0
3 b 1 0 1 1
4 a 1 0 1 1
5 b 1 1 1 1
6 a 0 1 1 0
cat <- c("a", "b", "b", "a", "b", "a")
df = cbind(cat, data.frame(matrix(c(0, 1, 0, 1, 0,
0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1,
1, 0), nrow=6, byrow = T)))
(即第一列中的 2 个类别,每个后续列中的每个类别的二进制数据)。理想情况下,我想按类别对每一列进行分组,但也可以按二元类别分组,最终得到如下结果:
1 a.0 2 1 1 1
2 a.1 1 2 2 2
3 b.0 0 1 0 1
4 b.1 2 1 2 2
到目前为止我最好的尝试是:
aggregate(df[,-1], by=list(df[,1]), FUN = table)
但不幸的是,这并不能准确地告诉我我想要什么
【问题讨论】: