如何在SAS中删除行(3个例子)

876 阅读2分钟

下面是在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中执行其他常见的任务:

如何在SAS中使用Proc Summary
如何在SAS中重命名变量
如何在SAS中创建新变量