Sas:如何将 proc sort 与 nodupkey 结合使用


您可以将 SAS 中的PROC SORTNODUPKEY结合使用,按一个或多个变量对数据集中的观测值进行排序并删除任何重复项。

以下示例显示如何将此过程用于 SAS 中的以下数据集:

 /*create dataset*/
data original_data;
    input team $pointsrebounds;
    datalines ;
At 12 8
At 12 8
At 12 8
At 23 9
At 20 12
At 14 7
At 14 7
B 20 2
B 20 5
B 29 4
B 14 7
B 20 2
B 20 2
B 20 5
;
run ;

/*view dataset*/
proc print data = original_data;

示例:在 SAS 中使用 PROC SORT 和 NODUPKEY

假设我们只是使用proc sort根据列中的值按升序(从小到大)对数据集中的观测值进行排序:

 /*sort by points ascending*/
proc sort data =original_data out =data2;
    by points;
run ;

/*view sorted dataset*/
proc print data =data2; 

请注意,观测值根据列中的值按升序排序。

然而,一些观察结果是重复的。

要根据列中的值对观测值进行排序并删除所有重复项,我们可以在proc sort语句后添加nodupkey

 /*sort by points ascending and remove duplicates*/
proc sort data =original_data out =data3 nodupkey ;
    by points;
run ;

/*view sorted dataset*/
proc print data =data3; 

现在,观测值根据列中的值按升序排序,并且所有重复的观测值均已删除。

请注意,我们还可以添加降序参数,以根据列中的值按降序对观测值进行排序,并删除所有重复项:

 /*sort by points descending and removing duplicates*/
proc sort data =original_data out =data4 nodupkey ;
    by descending points;
run ;

/*view sorted dataset*/
proc print data =data4; 

现在,观测值根据列中的值按降序排序,并且所有重复的观测值均已删除。

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

如何在 SAS 中使用 Proc Append
如何在 SAS 中使用 Proc Tabulate
如何在 SAS 中使用 Proc 排序规则

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注