我有一个来自 kaggle ( http://www.kaggle.com/c/acquire-valued-shoppers-challenge/data ) 的 20GB 交易数据集。
行超过 3 亿,变量为 11。
用 R 处理太重了。所以我想过滤数据。
id 类是 interger64。
唯一 ID 有 311541,我想要样本 20000。
我正在使用 data.table 但是有一个像图片一样的错误。
有没有办法采样id?
我有一个来自 kaggle ( http://www.kaggle.com/c/acquire-valued-shoppers-challenge/data ) 的 20GB 交易数据集。
行超过 3 亿,变量为 11。
用 R 处理太重了。所以我想过滤数据。
id 类是 interger64。
唯一 ID 有 311541,我想要样本 20000。
我正在使用 data.table 但是有一个像图片一样的错误。
有没有办法采样id?
如果我没记错的话,integer64
只是double
被屏蔽为integer
. 也许在不复制任何副本的情况下获取子集的最佳方法是setattr
使用data.table
. 尝试这个:
#remove the integer64 class
setattr(transaction$id,"class",NULL)
custom_sample<-sample(unique(transaction$id),20000)
sample_transac<-transaction[id %in% custom_sample,]
#give the integer64 class back
setattr(sample_transac$id,"class","integer64")