在R中的大型数据集上获取所有可能的组合

时间:2018-06-20 06:30:06

标签: r combinations

我有一个大型数据集,其中包含超过1000万条记录和20个变量。我需要获取这20个变量中11个变量的所有可能组合,并且对于每个组合,还应显示频率。

我在plyr包和table()函数中尝试过count()。但是它们两者都无法获得所有可能的组合,因为组合的数量非常多(大于2 ^ 32个组合),而且尺寸很大。

假设以下数据集具有5个变量和6个观察值- original dataset

我想要频率大于0的前三个变量的所有可能组合。

combinations dataset 还有其他功能可以实现吗?我只是对频率非零的组合感兴趣。 谢谢!

1 个答案:

答案 0 :(得分:1)

好。我想我对您的需求有所了解。如果要说要按表中的N个行类别计数,可以使用data.table包。它将为您提供表中存在的所有组合的计数。只需在by论据中列出所需的类别

DT<-data.table(val=rnorm(1e7),cat1=sample.int(10,1e7,replace = T),cat2=sample.int(10,1e7,replace = T),cat3=sample.int(10,1e7,replace = T))
DT_count<-DT[, .N, by=.(cat1,cat2,cat3)]