下面是在SAS中删除行的三种最常见的方法。
方法1:根据一个条件删除行
data new_data;
set original_data;
if var1 = "string" then delete;
run;
方法2:根据几个条件删除行
data new_data;
set original_data;
if var1 = "string" and var2 < 10 then delete;
run;
方法3:根据几个条件中的一个删除行
data new_data;
set original_data;
if var1 = "string" or var2 < 10 then delete;
run;
下面的例子展示了如何在SAS中用以下数据集来使用每种方法:
/*create dataset*/
data original_data;
input team $ position $ points;
datalines;
A Guard 15
A Guard 19
A Guard 22
A Forward 25
A Forward 27
B Guard 11
B Guard 13
B Forward 19
B Forward 22
B Forward 26
;
run;
/*view dataset*/
proc print data=original_data;
例1:基于一个条件删除行
下面的代码显示了如何从数据集中删除团队等于 "A "的所有行:
/*create new dataset*/
data new_data;
set original_data;
if team = "A" then delete;
run;
/*view new dataset*/
proc print data=new_data;
注意,所有团队等于 "A "的行都被删除了。
例2:基于几个条件删除行
下面的代码显示了如何从数据集中删除所有团队等于 "A "且 积分小于20的记录:
/*create new dataset*/
data new_data;
set original_data;
if team = "A" and points < 20 then delete;
run;
/*view new dataset*/
proc print data=new_data;
注意,两行球队等于 "A "且 积分小于20的记录已经被删除。
例3:根据几个条件中的一个删除行
下面的代码显示了如何从数据集中删除所有球队等于 "A "或者 积分小于20的行:
/*create new dataset*/
data new_data;
set original_data;
if team = "A" or points < 20 then delete;
run;
/*view new dataset*/
proc print data=new_data;
注意,八条队伍等于 "A "或 积分小于20的行已经被删除。
其他资源
下面的教程解释了如何在SAS中执行其他常见的任务: