个性化阅读
专注于IT技术分析

在SAS数据集中排序

本文概述

升序|降序| BY语句

在上一个主题中, 我们学习了SAS数据集, 并看到数据集是每个SAS程序的重要组成部分和基础。在本主题中, 我们将了解SAS数据集中的PROC排序。同时, 我们将学习SAS中的SAS默认排序和反向排序。默认排序和反向排序是数据集排序的两种方式。我们还将研究BY语句, 该语句对于数据值的排序至关重要。

在SAS中排序

SAS中的排序是根据变量以升序或降序排列数据的方式排列数据值(或观察值)的过程。 SAS的默认排序顺序是升序, 但是我们也可以使用” by语句”以降序和根据我们的选择对数据值进行排序。在使用”按语句”时, SAS根据数据值的子集产生结果。变量的排序有助于更好的分析并提供最佳结果。

在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中排序

输出

在SAS中排序

你可以在输出表中看到, 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中排序

输出

在SAS中排序

你可以在输出表中看到, 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中排序

输出

在SAS中排序

你会在输出表中看到SAS已根据性别对数据进行了排序。在第一个表中, 数据按女性(性别= f)排序, 在第二个表中, 数据按男性(性别= m)排序。


赞(0) 打赏
未经允许不得转载:srcmini » 在SAS数据集中排序
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏