BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
sasphd
Lapis Lazuli | Level 10

I want to sort data by styleid and rank_no 

I want this result

rank_no styleid

1 3

1 4

2 1

2 2

3 2

but using my program I obtain

2 1

2 1

3 2

1 3

1 4

as if the data is sorted only by styleid

data have;
input rank_no$ styleid$;
cards;
2 1
3 2
2 2
1 3
1 4
run;
proc sort data=have;
by styleid rank_no ; run;

1 ACCEPTED SOLUTION

Accepted Solutions
kiranv_
Rhodochrosite | Level 12

just change your by statement .

 

proc sort data=have;
by rank_no  styleid;

run;

View solution in original post

3 REPLIES 3
kiranv_
Rhodochrosite | Level 12

just change your by statement .

 

proc sort data=have;
by rank_no  styleid;

run;

sasphd
Lapis Lazuli | Level 10

if I change the order it will sort only by rank_no

Kurt_Bremser
Super User

You get exactly what you told proc sort to do.

According to your expected result, you need to change the order of variables in the by:

proc sort data=have;
by rank_no styleid;
run;

The result from that is

rank_no    styleid

   1          3   
   1          4   
   2          1   
   2          2   
   3          2   

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

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
  • 3 replies
  • 2300 views
  • 3 likes
  • 3 in conversation