首页 > 解决方案 > 在 R 中的大型数据集上获取所有可能的组合

问题描述

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

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

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

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

组合数据集 有没有其他功能可以实现这一点?我只对频率非零的组合感兴趣。谢谢!

标签: rcombinations

解决方案


好的。我想我知道你需要什么。如果您说要按表中的 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)]

推荐阅读