我已经从 excel 工作表中导入了一个数据集,我想删除一些观察结果。比如说,我有一个变量告诉我学生是否通过(字符串"通过"和"失败"(。我想从数据集中删除所有失败的学生。
我确实知道通常我可以通过 if 语句来做到这一点。但是,我不知道如何访问临时数据集。导入后是否必须打开它,然后使用 if 语句进行检查?
这就是我尝试的方式:
proc import datafile="C:UsersUserDesktoptestresults.xlsx"
DBMS=XLSX;
if Status = "failed" then delete
run;
我知道这行不通,因为"如果"条件仅在数据驻留在 PDV 中时才有效。
是否可以在导入后而不是导入时删除?
在输出数据集上使用 where 子句:
proc import file="my.xlsx"
out=work.myxlsx(where=(status^="failed"))
dbms=xlsx
replace;
run;
where
语句将修改 PROC IMPORT 的输出数据集,如 DomPazz 所示。
或者,您可以使用数据步骤。
proc import datafile="C:UsersUserDesktoptestresults.xlsx" out=have DBMS=XLSX;
run;
data want;
set have;
if Status = "failed" then delete;
run;
当然,无论您是在导入后立即(或在同一提交中(还是稍后一段时间,这都会起作用。