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;
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.