Hello!
I am using SAS ver9.3 to sort observations. They are as follows:
NT1
NT2
T1
T2
T3
I would like to sort them as:
T1
T2
T3
NT1
NT2
A simple DECENDING statement does not work, and give me T3, T2, T1, NT2, NT1. Is there a proper way to sort this? Thank you in advance. I am new at SAS programming so apologies if there is a simple solution I am not realizing.
Well, there's not really a simple solution. SAS isn't built to sort in an order that is neither ascending nor descending. You would need to create an extra variable based on your old variable:
if oldvar =: 'T' then sort_order=1;
else sort_order=2;
Then use that as part of your sorting sequence:
proc sort data=have;
by sort_order oldvar;
run;
Well, there's not really a simple solution. SAS isn't built to sort in an order that is neither ascending nor descending. You would need to create an extra variable based on your old variable:
if oldvar =: 'T' then sort_order=1;
else sort_order=2;
Then use that as part of your sorting sequence:
proc sort data=have;
by sort_order oldvar;
run;
Thank you! This worked perfectly.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.