Sas:如何将 proc sort 与 keep 语句一起使用


您可以将PROC SORT与 SAS 中的KEEP语句结合使用,对数据集中的行进行排序,并在排序后仅保留特定列。

为此,您可以使用以下基本语法:

 proc sort data=my_data out =sorted_data ( keep =var1 var2);
    by var2;
run ;

此特定示例根据var2列中的值对数据集中的行进行排序,然后排序后仅保留var1var2列。

以下示例展示了如何在实践中使用此语法。

示例:在 SAS 中使用 PROC SORT 和 KEEP 语句

假设我们在 SAS 中有以下数据集,其中包含有关各个篮球队的信息:

 /*create dataset*/
data my_data;
    input team $points assists;
    datalines ;
Mavs 113 22
Pacers 95 19
Cavs 100 34
Lakers 114 20
Heat 123 39
Kings 100 22
Raptors 105 11
Hawks 95 25
Magic 103 26
Spurs 119 29
;
run ;

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

我们可以使用以下语法根据列中的值对数据集的行进行排序:

 /*sort rows in dataset based on values in points column*/
proc sort data =my_data out =sorted_data;
    by points;
run ;

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

请注意,行现在根据列中的值按升序排序。

默认情况下,SAS 在排序后保留数据集中的所有列。

但是,您可以使用KEEP语句来指定排序后保留哪些列。

例如,我们可以使用以下语法根据列中的值对数据集中的行进行排序,然后仅保留团队列:

 /*sort rows in dataset based on values in points column and only keep team and points*/
proc sort data=my_data out =sorted_data ( keep =team points);
    by points;
run ;

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

同样,行根据点数列值按升序排序,但这次我们使用KEEP语句在排序后仅保留球队点数列。

其他资源

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

如何在 SAS 中使用 PROC SORT 和 NODUPKEY
如何在SAS中重命名变量
如何在 SAS 中创建新变量

添加评论

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