SAS采样返回交易记录组

问题描述 投票:0回答:1

我有一个大型数据集,我想从中抽取一组日期/事务ID每个事务ID与数据中的多行相关 - 比如每个ID 1-20行我想在日期内返回所有这些记录/ transactionID采样

由于数据的大小,我宁愿避免对事务ID进行采样并加入以获取所有记录

sas sampling
1个回答
0
投票

假设您的数据集已经按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;
© www.soinside.com 2019 - 2024. All rights reserved.