我有一个宏,用户可以选择运行宏的文件。我想知道是否有办法只保留每个选定数据集中的一个变量,并且只有它出现在我的变量名称列表中。
例如,用户输入%LET TABLEN = revinfo;其中revinfo.sas包含可变收入但不包含收入利润或销售额。我只想要一个变量收入。
我尝试了多个keep语句,但如果它试图保留一个不存在的变量,则会出错。
data want;
SET have.&TABLEN;
KEEP income;
KEEP revenue;
KEEP profit;
KEEP sales;
RUN;
非常感谢, KK
答案 0 :(得分:0)
这样做的最简单方法是假设你单独处理任何输入验证,或者将其留给用户,就是告诉SAS如果你试图保留一个不存在的变量就不要出错。您可以通过设置option dkricond = warn;
或nowarn
而不是默认的error
来实现此目的。
如果您沿着这条路走下去,我还建议您在更改此选项之前记下之前的设置,然后在其余的宏运行后将其更改回来。