BookmarkSubscribeRSS Feed
koyelmukherjee2
Calcite | Level 5

Hi All,

 

I need to sort my output in the descending order of mean. Please help.

 

data average;
set sashelp.cars (KEEP = MAKE MODEL MSRP);
run;

 

 

proc means data = average mean nway nonobs;
class make;
var msrp;

run;

4 REPLIES 4
art297
Opal | Level 21

Easy to do with proc sql:

 

proc sql;
  select make,mean(msrp) as mean format=dollar7.
    from sashelp.cars
      group by make
        order by mean descending
  ;
quit;

HTH,

Art, CEO, AnalystFinder.com

 

koyelmukherjee2
Calcite | Level 5

Hello,

 

Thanks for the reply. But, I wanted to know if there is a way to do it using PROC MEANS descend /descending. Is it not allowed while using class?

art297
Opal | Level 21

Not that I'm aware of. AFAIK, all of the order by options are related to the class or by values or their frequency or formatted values.

 

Art, CEO, AnalystFinder.com

 

 

 

ballardw
Super User

Since you want "I need to sort my output in the descending order of mean" then create an output data set and sort that;

 

 

proc summary data=SASHelp.cars nway;

   class make;

   var msrp;

   output out = average (drop = _type_ _freq_) mean=;

run;

proc sort data=average;

   by descending msrp;

run;

 

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 4834 views
  • 2 likes
  • 3 in conversation