我正在与 sas 一起操作一些数据集。
我正在使用数据步骤应用一些条件来保留列并过滤某些值。
问题是我想过滤最终我不需要的列,所以我想首先应用 where 子句,然后应用 keep 子句。
问题是 sas 执行,首先是 keep 子句,然后是 where,所以当它尝试应用 where 指令时,它没有找到应该应用它的列。这是我的代码:
data newtable;
set mytable(where=(var1<value)
keep var2);
end;
在这种情况下,错误是找不到 var1,因为我决定只保留 var2。我知道我可以做两个数据步骤,但我只想一步完成所有事情。
我怎样才能做到这一点?
最佳答案
这可以通过在输出数据集上使用 keep
数据集选项来实现,例如(未经测试):
data newtable(keep=var2);
set mytable(where=(var1<value));
end;
或者,可以使用
keep
语句,例如(未经测试):data newtable;
set mytable(where=(var1<value));
keep var2;
end;
关于sas - 应用 keep 和 where together sas,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52199086/