我有一个包含IDNum,Var1,Var2,Var3,Var4,Var5,Var6列的大型数据集。变量是布尔值,值为0或1。每行可以是64个可能的排列之一。我想计算与每个排列相对应的行数。有没有一种有效的方法可以在R中编写此代码?
aggregate可以做到这一点。这是一个简短的示例:
aggregate
r <- function() rbinom(10, 1, .5) d <- data.frame(IDNum=1:10, Var1=r(), Var2=r()) d IDNum Var1 Var2 1 1 0 1 2 2 0 1 3 3 0 0 4 4 1 0 5 5 1 1 6 6 0 0 7 7 1 1 8 8 1 0 9 9 0 1 10 10 0 1
现在计算每个组合的数量:
> aggregate(d$IDNum, d[-1], FUN=length) Var1 Var2 x 1 0 0 2 2 1 0 2 3 0 1 4 4 1 1 2
中的值d$IDNum实际上并未在此处使用,但必须将某些内容传递给该length函数。d$IDNum传递每个组合中的值length以获取计数。
d$IDNum
length