【发布时间】:2017-01-08 21:05:07
【问题描述】:
我正在尝试从我的数据集中创建 4 路列联表。 我的数据集如下所示:
a <- c(1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1)
b <- c(1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1)
group1 <- sample(letters[25:26], 12, replace = T)
group2 <- sample(letters[7:10], 12, replace = T)
df <- data.frame(a, b, group1, group2)
我尝试了aggregate 函数。创建三向列联表时一切正常
aggregate(cbind(a, b) ~ group1, data = df, FUN = table)
group1 a.0 a.1 b.0 b.1
1 y 3 4 3 4
2 z 2 3 2 3
但是,当添加第二个分组变量时,输出会令人困惑并且不需要。
aggregate(. ~ group1 + group2, data = df, FUN = table)
group1 group2 a b
1 y g 3 3
2 z g 1 1
3 z h 1 1
4 y i 1 1
5 z i 1 1
6 y j 2, 1 3
7 z j 1, 1 1, 1
由于我的原始数据集非常大,我希望有一些优雅且自动的方法来处理它。 T
【问题讨论】:
标签: r dataframe dataset aggregate