# SAS对多个变量排序详细图解

SAS允许对多个变量进行排序, 因此我们可以同时对多个变量进行排序。但是请考虑一下, 如果我们指示SAS以升序(或默认)顺序对多个变量进行排序, 并且所有变量都包含整数值, 那么SAS应该选择哪个变量进行排序。让我们通过一个例子来理解：

data student;
input roll age \$;
datalines;
101 14
102 13
103 15
104 12
;
run;
proc sort data=student;
by roll age  ;
run;
proc print data=student;
by roll age;
run;

### 例：

data student;
input roll name\$ game\$ age weight height\$;
datalines;
1 Anuj football 22 64 161
5 Anuj tenis 23 64 155
2 Binita bedminton 30 64 159
7 Binita football 29 74 164
4 Anita tenis 29 65 153
3 Tarun football 21 70 162
6 Preeti bedminton 24 57 157
;
run;
proc sort data=student;
by weight age  ;
run;
proc print data=student;
by weight age;
run;

data student;
input roll name\$ game\$ age weight height\$;
datalines;
1 Anuj football 22 64 161
5 Lata tenis 23 60 155
2 Vinita bedminton 30 65 159
7 Kumar football 29 74 164
4 Anita tenis 29 65 153
3 Tarun football 21 70 162
6 Preeti bedminton 24 57 157
;
run;
proc sort data=student;
by name age  ;
run;
proc print data=student;
by name age;
run;

## 局限性

SAS排序有一个限制。在某种情况下, 当我们引用一个包含字母数据值的变量进行排序时, 但是某些值以大写字母开头, 而有些则以小写字母开头, 则排序的顺序是这样的, 首先是大写字母, 然后是大写字母。最后是小写字母。让我们来看一个例子：

data student;
input roll name\$ game\$ age weight height\$;
datalines;
1 Anuj football 22 64 161
5 lata tennis 23 60 155
2 Vinita badminton 30 65 159
7 Kumar football 29 74 164
4 Anita tennis 29 65 153
3 Tarun football 21 70 162
6 preeti badminton 24 57 157
;
run;
proc sort data=student;
by name game ;
run;
proc print data=student;
by ;
run;

• 回顶