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;
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: