2017-04-07 72 views
0

我有一个宏,用户可以选择在哪个文件上运行宏。我想知道是否有办法从每个选定的数据集中仅保留一个变量,并且只有当它出现在我的变量名称列表中时。SAS-只保留在列表中

因此,例如,用户将输入%LET TABLEN = revinfo; revinfo.sas包含可变收益,但不包括收入利润或销售额。我只想要一个可变的收入。

我尝试了多个保留语句,但是如果它试图保留一个不存在的变量的话会出错。

data want; 
SET have.&TABLEN; 
    KEEP  income; 
    KEEP  revenue; 
    KEEP  profit; 
    KEEP  sales; 
RUN; 

非常感谢, KK

+0

你怎么知道'revinfo'有'revenue',相反你怎么知道'revenue'是从revinfo'保留的变量? – Joe

+0

第一步 - 详细说明你的逻辑。写下来的图表或桌子可以节省你头和桌子的时间。 – Reeza

回答

0

做这个,假设你是单独服用任何输入验证的照顾,或留下你的用户的最简单的方法,就是告诉SAS给不给如果您尝试保留不存在的变量,则会出错。您可以通过设置option dkricond = warn;nowarn而不是默认值error来实现。

如果沿着这条路线走,我还建议记录先前的设置,然后再更改此选项,然后在宏的其余部分运行后将其更改回来。