Hello
Let's say that I have a data set (summary report) and I want to re-order the rows.
The issue is that I don't want to order it by descending criteria and not by ascending criteria.
I want to to order it by order that I want to define in advance.
I want that order of rows will be by "team" :bcbfb, jdjfj,asddd
and within each team by Profit(from high value to low value).
Data Report;
input team $ sub_team $ Profit;
cards;
asddd a 10
asddd b 30
asddd c 20
jdjfj a 40
jdjfj b 50
jdjfj c 15
bcbfb a 35
bcbfb b 46
bcbfb c 90
;
run;
/*The required order of rows is
bcbfb
jdjfj
asddd
*/
Create a team order variable and sort by that. Use PROC FORMAT to assign the order:
proc format;
value $team_order
bcbfb = '1'
jdjfj = '2'
asddd = '3'
;
run;
data want;
set have;
team_order = put(team, $team_order.);
run;
proc sort data = want;
by team_order;
run;
Create a team order variable and sort by that. Use PROC FORMAT to assign the order:
proc format;
value $team_order
bcbfb = '1'
jdjfj = '2'
asddd = '3'
;
run;
data want;
set have;
team_order = put(team, $team_order.);
run;
proc sort data = want;
by team_order;
run;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.