Help using Base SAS procedures

proc sort does not work

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 118
Accepted Solution

proc sort does not work

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;


Accepted Solutions
Solution
‎04-11-2017 09:42 AM
PROC Star
Posts: 326

Re: proc sort does not work

just change your by statement .

 

proc sort data=have;
by rank_no  styleid;

run;

View solution in original post


All Replies
Solution
‎04-11-2017 09:42 AM
PROC Star
Posts: 326

Re: proc sort does not work

just change your by statement .

 

proc sort data=have;
by rank_no  styleid;

run;

Frequent Contributor
Posts: 118

Re: proc sort does not work

if I change the order it will sort only by rank_no

Super User
Posts: 7,866

Re: proc sort does not work

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   
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 180 views
  • 3 likes
  • 3 in conversation