我有一个数据框包含数据x,以及三个不同的因素(受试者、任务和正确答案)。
subj <- rep(c(1,2,3), times=4)
task <- c("A","A","A","A","A","A","B","B","B","B","B","B")
correct <- c(1,1,1,0,0,0,1,1,1,0,0,0)
x <- runif(12)
df <- data.frame(subj, task, correct, x)
我希望能够得到这三个因素每种可能组合下的试验次数(3个被试 * 2个任务 * 2个正确/错误 = 12种组合)。当然,这只是一个不好的例子,因为我只有每个组合的一个试验,但您可以想象一下。所以我的操作如下:
> aggregate(x~subj+task+correct, length, data=df)
subj task correct x
1 1 A 0 1
2 2 A 0 1
3 3 A 0 1
4 1 B 0 1
5 2 B 0 1
6 3 B 0 1
7 1 A 1 1
8 2 A 1 1
9 3 A 1 1
10 1 B 1 1
11 2 B 1 1
12 3 B 1 1
现在假设我的数据中有一些缺失的组合:
> newdf <- df[-2,]
使用相同的聚合函数将不会显示所有可能的组合,只有12个中的11个。我希望对于我缺失的组合能够获得长度为0(或NA或类似的结果)。
注意:这里有一个类似的问题链接,但我认为它并没有解决我的问题。