我有来自kaggle(http://www.kaggle.com/c/acquire-valued-shoppers-challenge/data)的20GB交易数据集。
行超过3亿,变量为11。
使用R处理太重了。所以我想过滤数据。
id class是interger64。
唯一ID为311541,我想要样本20000。
我正在使用data.table但是有一个像图片一样的错误。
有没有办法对id进行抽样?
答案 0 :(得分:1)
如果我没记错的话,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")