BookmarkSubscribeRSS Feed
🔒 This topic is locked. We are no longer accepting replies to this topic. Need further help? Please sign in and ask a new question.
SAS_Tipster
Moderator

Call routines SORTN and SORTC can order an array in ascending order only. What if you want to order it in descending order? Here is an easy way!

 

data _null_;
  array arr[*] v1-v5 (1 2 3 4 5);
  put "before:" (v1-v5) (= +1);
  /* reverse the variable list in a new array definition and sort */
  array rev[*] v5-v1;
call sortn(of rev[*]);
put "after :" (v1-v5) (= +1);
run;
/* on log
   before: v1=1  v2=2  v3=3  v4=4  v5=5
   after : v1=5  v2=4  v3=3  v4=2  v5=1
*/

For a detailed discussion on variable lists, see Using SAS Variable Lists Effectively |Schreier (2011).



Thanks to chang_y_chung for sharing this tip on sasCommunity.org.

SAS Innovate 2025: Call for Content

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!

Submit your idea!

Visit a random SAS tip This SAS Tips board is not open for replies or comments, but we welcome your feedback and questions. Have a question or comment about this tip? Start a new topic in one of our discussion boards, and reference this tip topic.
Discussion stats
  • 0 replies
  • 4571 views
  • 1 like
  • 1 in conversation