If statement 如何删除SAS中的一些观察值?

If statement 如何删除SAS中的一些观察值?,if-statement,sas,If Statement,Sas,我试图通过编码来学习SAS。目前,我正在尝试对从excel工作表导入的数据集使用if语句。然而,我面临一个关于if语句的问题。我想这是因为语法错误。我读到的是,if语句可以在数据步骤中使用 我想做的是删除一些观察结果——如果性别不是女性,那么就必须删除这些观察结果 这就是我试图做到的: proc import datafile="C:\Users\User\Desktop\test.xlsx" DBMS=XLSX out=onlyF; if Gender != 2 then delete;

我试图通过编码来学习SAS。目前,我正在尝试对从excel工作表导入的数据集使用if语句。然而,我面临一个关于if语句的问题。我想这是因为语法错误。我读到的是,if语句可以在数据步骤中使用

我想做的是删除一些观察结果——如果性别不是女性,那么就必须删除这些观察结果

这就是我试图做到的:

proc import datafile="C:\Users\User\Desktop\test.xlsx"

DBMS=XLSX 

out=onlyF;
if Gender != 2 then delete;
run;
变量名为Gender

我得到的错误是“if”:
语句无效或使用顺序不正确。

作为SAS中的一般规则,“if”条件仅在数据驻留在PDV中时起作用,而“where”条件甚至在数据移动到PDV之前起作用。与您的情况一样,您正在尝试读取外部文件,因此“if”永远不会起作用。试试下面的代码

proc import datafile="C:\Users\User\Desktop\test.xlsx"

DBMS=XLSX 

out=onlyF(where=(Gender eq 2));

run;