sort过程用于将数据集的数据体按某些变量的值排序。它可以在数据步使用,也可以在加工步使用。sort过程的必要语句是proc sort语句和by语句。
proc sort语句的一般形式是:
其功能是把数据集xx排序,存入数据集yy。例如:
这一语句的作用是将数据集wu1排序,产生新的临时数据集zhang3,将排好序的数据集存入数据集zhang3。若该语句没有“out=”选项,例如:
则排序后的数据集存入原有数据集wu1,取代原有没排序的数据集wu1。如果该语句没有“data=”选项,则将最新生成的数据集排序。例如,最新生成的数据集是work.wang3:
则将最新生成的临时数据集wang3排序,排好序的数据集存入数据集wang3。
by语句的一般形式是:(www.xing528.com)
其功能是先按变量1(外层)排序,再按照变量2(内层)排序……如果没有“descending”选项,则按变量以从先到后的顺序排序,即所排顺序是升序。如果想按某个变量降序排序,那么就应当在该变量前加选项“descending”。例如“proc sort;”与“by x z;”两语句的作用是先按x升序排列,再按z升序排列。又如“proc sort;”与“by x descending z;”两语句的作用是先按x升序排列,再按z降序排列。而“proc sort;”与“by descending x descending z;”两语句的作用是先按x降序排列,再按z降序排列。升序排列的顺序是:空缺值“.”最前,其后是数字、字符和中文字符,同C语言的规定一样。
例4.8 设已有数据如表4-6所示,试将它们建成SAS数据集,并且先按照x降序排序,再按照z升序排序。
表4-6 待排序数据
解 可用如下程序实现:
得到的结果是:
练习题 将例4.8中的数据集w排序:先按照x升序排序,再按照z降序排序。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。