Help using Base SAS procedures

Proc freq; select top 50 Highest observations

Reply
Contributor
Posts: 35

Proc freq; select top 50 Highest observations

Hi,

The code below creates a table of the number of observation with the value "infinity" in the variable "tim_diff", for each variable observation "etikett".

I have made it so that the table is sorted in order of frequencies (order=freq).

My problem is that I want to choose just the 50 highest observations. I.e. the 50 observations in "etikett" with the highest number of frequencies in "tim_diff".

I have tried "(obs=50), but then it just chooses the first 50 observations, not the ones with the highest frequencies. Does anyone have a suggested solution to the problem? 

proc freq data=Timlon order=freq nlevels;

table etikett*tim_diff / nopercent norow nocol list missing;

where tim_diff=.I;

run;

Thanks in advance!

Best regards,

Hank

Respected Advisor
Posts: 3,777

Re: Proc freq; select top 50 Highest observations

This usually requires 2 steps one to summarize and another to select the top freqs.

proc summary data=sashelp.class nway;
  
class age / descending order=freq;
   output out=count;
   run;
proc print data=count(obs=3);
   run;
Ask a Question
Discussion stats
  • 1 reply
  • 3227 views
  • 3 likes
  • 2 in conversation