Я не думаю, что можно сортировать по отформатирован значения в Proc рода, но вы определенно можете использовать простую процедуру прок SQL для сортировки набор данных по форматированным значениям. proc SQL похож на шаг данных и proc sort, но более мощный.
Общий синтаксис Proc SQL для сортировки по отформатированным значениям будет:
proc sql;
create table NewDataSet as
select variable(s)
from OriginalDataSet
order by put(variable1, format1.), put(variable2, format2.);
quit;
К примеру, у нас есть набор образцов данных, содержащие имена, пол и возраст некоторых людей, и мы хотим, чтобы отсортировать их :
proc format;
value gender 1='Male'
2='Female';
value age 10-15='Young'
16-24='Old';
run;
data work.original;
input name $ sex age;
datalines;
John 1 12
Zack 1 15
Mary 2 18
Peter 1 11
Angela 2 24
Jack 1 16
Lucy 2 17
Sharon 2 12
Isaac 1 22
;
run;
proc sql;
create table work.new as
select name, sex format=gender., age format=age.
from work.original
order by put(sex, gender.), put(age, age.);
quit;
Выход work.new будет:
Obs name sex age
1 Mary Female Old
2 Angela Female Old
3 Lucy Female Old
4 Sharon Female Young
5 Jack Male Old
6 Isaac Male Old
7 John Male Young
8 Zack Male Young
9 Peter Male Young
Если бы мы использовали процедурный сортировать по полу, то самцы заняли бы первое место, потому что мы использовали 1 для представления мальчиков и 2 для представления женщин, которых мы не хотим. Таким образом, мы можем ясно видеть, что proc sql действительно сортировал их в соответствии с форматированными значениями (Females first, Males second).
Надеюсь, это поможет.
Да, я понял это немного после размещения вопроса. Спасибо, хотя (снова). – user108431