0

我有一个来自 kaggle ( http://www.kaggle.com/c/acquire-valued-shoppers-challenge/data ) 的 20GB 交易数据集。

行超过 3 亿,变量为 11。

用 R 处理太重了。所以我想过滤数据。

在此处输入图像描述

id 类是 interger64。

唯一 ID 有 311541,我想要样本 20000。

我正在使用 data.table 但是有一个像图片一样的错误。

有没有办法采样id?

4

1 回答 1

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")
于 2014-11-19T06:57:53.883 回答