hi friends ,
any body clearify my doute ,
data set " A" have 100 observations(inputdataset), "B" output dataset,
in dataset " A" ,every 5th observation should come to data set "B" ,
let me clearify me?
or more simply:
data b;
set a;
if mod(_n_,5) = 0 then output;
run;
The previous examples read every row then output every 5th.
Fine for a one-off run or a small sample.
This is more efficient technique which only reads every 5th row but it's slightly more code.
data b;
do i = 1 to rows by 5;
set a point=i nobs=rows;
output;
end;
stop;
run;
One more option, if you have SAS/Stat.
this will generate a randon 20% sample
proc surveyselect data=a out=b
rate=0.2;
run;
quit;
And if you have SAS/STAT 13.1 or higher, you can use PROC SURVEYSELECT also to literally select every 5th observation (without any random component):
proc surveyselect data=a out=b
method=sys(start=5) rate=0.2;
run;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.
Ready to level-up your skills? Choose your own adventure.