如何在 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 中执行其他常见任务: