如何在 sas 中对数据进行子集化(3 个示例)


以下是在 SAS 中对数据集进行子集化的三种最常见方法:

方法 1:选择要保留的列

 data new_data;
    set original_data;
    keep var1 var3;
run ;

方法 2:选择要删除的列

 data new_data;
    set original_data;
    dropvar4 ;
run ;

方法三:根据条件选择保留哪些行

 data new_data;
    set original_data;
    if var1 < 25 then delete;
run ;

以下示例展示了如何在 SAS 中对以下数据集使用每种方法:

 /*create dataset*/
data original_data;
    input team $pointsrebounds;
    datalines ;
Warriors 25 8
Wizards 18 12
Rockets 22 6
Celtics 24 11
Thunder 27 14
Spurs 33 19
Nets 31 20
;
run ;

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

示例 1:选择要保留的列

以下代码演示如何使用KEEP语句对数据集进行子集化以仅保留某些列:

 /*create new dataset*/
data new_data;
    set original_data;
    keep team points;
run ;

/*view new dataset*/
proc print data = new_data;

示例 2:选择要删除的列

以下代码演示如何使用DROP语句对数据集进行子集化以删除特定列:

 /*create new dataset*/
data new_data;
    set original_data;
    drop points;
run ;

/*view new dataset*/
proc print data = new_data;

示例 3:根据条件选择要保留的行

以下代码演示如何使用DELETE语句对数据集进行子集化,以从数据集中删除列中的值小于 25 的特定行:

 /*create new dataset*/
data new_data;
    set original_data;
    if points < 25 then delete;
run ;

/*view new dataset*/
proc print data = new_data;

您还可以使用OR| ” 删除得分小于 25篮板数小于 10 的行:

 /*create new dataset*/
data new_data;
    set original_data;
    if points < 25 | rebounds < 10 then delete;
run ;

/*view new dataset*/
proc print data = new_data; 

您还可以使用AND& ”运算符删除点数小于 25跳出率小于 10 的行:

 /*create new dataset*/
data new_data;
    set original_data;
    if points < 25 & rebounds < 10 then delete;
run ;

/*view new dataset*/
proc print data = new_data; 

其他资源

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

如何在SAS中重命名变量
如何在 SAS 中创建新变量
如何在SAS中替换字符串中的字符

添加评论

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