本文概述
升序|降序| BY语句
在上一个主题中, 我们学习了SAS数据集, 并看到数据集是每个SAS程序的重要组成部分和基础。在本主题中, 我们将了解SAS数据集中的PROC排序。同时, 我们将学习SAS中的SAS默认排序和反向排序。默认排序和反向排序是数据集排序的两种方式。我们还将研究BY语句, 该语句对于数据值的排序至关重要。
在SAS中排序
SAS中的排序是根据变量以升序或降序排列数据的方式排列数据值(或观察值)的过程。 SAS的默认排序顺序是升序, 但是我们也可以使用” by语句”以降序和根据我们的选择对数据值进行排序。在使用”按语句”时, SAS根据数据值的子集产生结果。变量的排序有助于更好的分析并提供最佳结果。
注意:SAS不区分大小写。
句法:
PROC sort data=<name of data>;
by <name of variable>;
run;
SAS PROC默认排序(升序)
排序|升序
当我们想通过单个变量对数据进行排序而又不提及排序顺序(升序或降序)时, SAS将遵循默认的排序顺序, 即升序。
让我们通过一个例子来理解:
在下面的示例中, 我们获取班级学生的数据。学生的数据包括他们的学生ID, 姓名, 性别, 年龄, 体重和身高, 为了进行排序, 我们使用一个权重变量。结果, 它将根据学生体重的升序对数据进行排序。
data one;
input studyid name$ sex$ age weight height$;
datalines;
1 Akash m 22 64 120
6 Jaya f 55 63 125
2 Vinita f 34 68 130
7 Kumar m 43 64 130
4 Anita f 29 65 153
5 Taufik m 21 45 110
8 Boby m 32 71 155
3 Ankita f 40 69 120
;
run;
proc sort data=one;
by weight;
run;
/*will sort data one by the variable weight in ascending order */
proc print data=one;
run;
在SAS Studio中运行以上代码:
输出
你可以在输出表中看到, SAS已根据重量的升序对数据进行了排序。
降序排列
排序|降序
如果需要按降序排序, 则必须在By语句和变量中提及它。
句法:
proc sort data= dataset name;
by descending variable name;
run;
proc print data= dataset name ;
run;
让我们通过一个例子来理解:
data one;
input studyid name$ sex$ age weight height$;
datalines;
1 Akash m 22 64 120
6 Jaya f 55 63 125
2 Vinita f 34 68 130
7 Kumar m 43 64 130
4 Anita f 29 65 153
5 Taufik m 21 45 110
8 Boby m 32 71 155
3 Ankita f 40 69 120
;
run;
proc sort data=one;
by descending age;
run;
proc print data=one;
run;
在SAS Studio中运行以上代码:
输出
你可以在输出表中看到, SAS已根据年龄的降序对数据进行了排序。
按语句排序
排序|按声明
如果需要通过对数据值的每个子集应用过程(PROC)来对数据进行排序, 请使用By语句。你可以将其应用于具有可分为几部分的数据值的变量。我们可以同时对多个变量进行排序。
句法:
proc sort data=dataset name;
by variable name;
run;
proc print data= dataset name;
by variable name;
run;
让我们通过一个例子来理解:
在该示例中, 我们基于性别变量进行排序, 该性别变量包含的数据值可以分为两部分, 即男性和女性。
data one;
input studyid name$ sex$ age weight height$;
datalines;
1 Akash m 22 64 120
6 Jaya f 55 63 125
2 Vinita f 34 68 130
7 Kumar m 43 64 130
4 Anita f 29 65 153
5 Taufik m 21 45 110
8 Boby m 32 71 155
3 Ankita f 40 69 120
;
run;
proc sort data=one;
by sex;
run;
proc print data=one;
by sex;
run;
在SAS Studio中运行以上代码:
输出
你会在输出表中看到SAS已根据性别对数据进行了排序。在第一个表中, 数据按女性(性别= f)排序, 在第二个表中, 数据按男性(性别= m)排序。
评论前必须登录!
注册