There are 13 mil records in a dataset. and there is column country_cd. I need to pull 20 records for each country_cd i.e
country_cd list that i'm interested is 001, 840, 124, 875.For each of this country code I need get 20 records.
Any help is appreciated.
Hi,
If I understand you correctly, the following code may get you to start:
data _w1/view=_w1;
set have (where=(country_cd in ('001','840','124','875')));
run;
proc sort data=_w1;
by country_cd;
run;
data want;
do _n_=1 by 1 until (last.country_cd);
set _w1;
by country_cd;
if _n_<=20 then output;
end;
run;
Haikuo
I used somethng like this:
proc sql;
create table outdata.cntry_20 as
select * from outdata._master_v1(obs=20) where ADR_CTRY_CD='000'
union all
select * from outdata._master_v1(obs=20) where ADR_CTRY_CD='840'
union all
select * from outdata._master_v1(obs=20) where ADR_CTRY_CD='344'
union all
select * from outdata._master_v1(obs=20) where ADR_CTRY_CD='392'
union all
select * from outdata._master_v1(obs=20) where ADR_CTRY_CD='076';
quit;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.