我有一个大型数据集,我想从中抽取一组日期/事务ID每个事务ID与数据中的多行相关 - 比如每个ID 1-20行我想在日期内返回所有这些记录/ transactionID采样
由于数据的大小,我宁愿避免对事务ID进行采样并加入以获取所有记录
假设您的数据集已经按ID +日期排序(或编入索引),则可以在1个数据步骤中对此类型进行一些简单的随机抽样,例如:使用DOW循环:
data want;
call streaminit(0);
sample_rate = 0.05;
flag = rand('uniform') < sample_rate;
do until(last.date);
set have;
by ID date;
if flag then output;
end;
drop flag sample_rate;
run;