在SAS数据集中排序

本文概述

  • 升序|降序| BY语句
  • 在SAS中排序
  • SAS PROC默认排序(升序)
  • 降序排列
  • 按语句排序
升序|降序| BY语句 在上一个主题中, 我们学习了SAS数据集, 并看到数据集是每个SAS程序的重要组成部分和基础。在本主题中, 我们将了解SAS数据集中的PROC排序。同时, 我们将学习SAS中的SAS默认排序和反向排序。默认排序和反向排序是数据集排序的两种方式。我们还将研究BY语句, 该语句对于数据值的排序至关重要。
在SAS中排序 SAS中的排序是根据变量以升序或降序排列数据的方式排列数据值(或观察值)的过程。 SAS的默认排序顺序是升序, 但是我们也可以使用” by语句” 以降序和根据我们的选择对数据值进行排序。在使用” 按语句” 时, SAS根据数据值的子集产生结果。变量的排序有助于更好的分析并提供最佳结果。
在SAS数据集中排序

文章图片
注意:SAS不区分大小写。 句法:
PROC sort data=http://www.srcmini.com/< 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=http://www.srcmini.com/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= http://www.srcmini.com/dataset name; by descending variable name; run; proc print data= dataset name ; run;

【在SAS数据集中排序】让我们通过一个例子来理解:
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=http://www.srcmini.com/one; by descending age; run; proc print data=one; run;

在SAS Studio中运行以上代码:
在SAS数据集中排序

文章图片
输出
在SAS数据集中排序

文章图片
你可以在输出表中看到, SAS已根据年龄的降序对数据进行了排序。
按语句排序 排序|按声明
如果需要通过对数据值的每个子集应用过程(PROC)来对数据进行排序, 请使用By语句。你可以将其应用于具有可分为几部分的数据值的变量。我们可以同时对多个变量进行排序。
句法:
proc sort data=http://www.srcmini.com/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=http://www.srcmini.com/one; by sex; run; proc print data=one; by sex; run;

在SAS Studio中运行以上代码:
在SAS数据集中排序

文章图片
输出
在SAS数据集中排序

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

    推荐阅读