美文网首页
关于proc sort中的key语句

关于proc sort中的key语句

作者: 生物统计与SAS研究员 | 来源:发表于2021-08-11 16:54 被阅读0次

一般来说proc sort会用by语句来决定如何排序的方式,但很少有人知道key语句。在语法上key和by是互相替代的语句,两者功能类似,但也有区别。

区别1:by语句必须逐个变量指定排序是正序还是倒叙,而key语句则整体统一设置成相同的方式。

举例:

proc sort data=sortVar out=sortedOutput;

key x1 x2 / descending;

run;

是等效于:

proc sort data=sortVar out=sortedOutput;

 by descending x1 descending x2 ;

run;

区别2:by语句中没有正序的关键词,因为正序是默认的。key语句可以设定正序。

举例:

proc sort data=sortVar out=sortedOutput;

    key x1 / ascending;

run;

上面代码是正确的,但下面代码是错误的:

proc sort data=sortVar out=sortedOutput;

    by ascending x1;

run;

区别3:由于key必须是整体统一设定,因此key可以多重使用。

举例:

proc sort data=sortKeys out=sortedOutput;

    key x2;

    key x3;

run;

排序是按照key出现的顺序排变量的。

尽管by也可以写多重,但实际上只有最后一个by有效:

proc sort data=sashelp.class out=class;

by sex;

by age;

run;

proc sort data=sashelp.class out=class;

by age;

run;

以上两段程序等效。

另外,无论是by还是key,都可以使用简写变量的方式,例如

proc sort data=sortKeys out=sortedOutput;

    key x1 x2-x4;

run;

相关文章

网友评论

      本文标题:关于proc sort中的key语句

      本文链接:https://www.haomeiwen.com/subject/znycbltx.html