Can any explain me how to filter top n rows in a particular group. for example for Each zone , top 10 locations need to be filtered.
Sort by zone and the selection criteria (descending).
Then do;
data want;
set have;
by zone;
retain counter;
if first.zone
then counter = 1;
else counter + 1;
if counter le 10;
drop counter;
run;
Sort by zone and the selection criteria (descending).
Then do;
data want;
set have;
by zone;
retain counter;
if first.zone
then counter = 1;
else counter + 1;
if counter le 10;
drop counter;
run;
Hi Aarathi,
Alternatively, you could try do loops as below, i took the example of shoes dataset. Hope this helps.
proc sort data=sashelp.shoes out=shoes;
by region descending stores ;
run;
data shoes_;
i=0;
do until(last.region);
set shoes;
by region descending stores ;
i+1;
if i <=10 then
output;
end;
run;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.