我明白要选择随机样本,我可以使用
proc surveyselect data = raw_data method = srs n=200000 out=sample_data;
run;
但是,有时我的raw_data具有记录数< 200000.如果raw_data很小,我想保留raw_data;如果它超过一百万条记录,我想随机选择一条200k的记录。我该怎么做?
谢谢!
答案 0 :(得分:1)
只需为n
创建一个宏变量。您可以在下面执行此操作,或者如果您没有理由不相信这些值,则可以使用dictionary.tables
或proc contents
来获取计数,而无需实际计算所有行。
proc sql;
select
case when count(1) < 1000000 then count(1) else 200000 end
into :sampcount
from yourdataset
;
quit;
proc surveyselect n=&sampcount. .... ;
run;