在SAS中挣扎着传递宏观价值

时间:2015-03-26 19:36:16

标签: sas sas-macro

最初,我有这样的代码。

data newFile;
set File;
   If Gender NE 'Female' then delete;
   If Group NE 10 then delete;
   If Age GT 30 then delete;
run;

它运作得很好。但我希望能够从顶部更改这些条件,因此我添加了宏变量。到目前为止,我有这个

&let macGender = 'Female';
&let macGroup = 10;
&let macAge = 30;

data newFile;
set File;
   If Gender NE &macGender then delete;
   If Group NE &macGroup then delete;
   If Age GT &macAge then delete;    
run;

它似乎不像原始代码那样工作。我甚至试过这样的事情

2 个答案:

答案 0 :(得分:6)

您需要%let而不是&let

%let是用于为宏变量赋值的宏语句。

&let是对(可能)尚未创建的宏变量的引用。

答案 1 :(得分:1)

放%符号代替&在你的宏观声明中,让你的声明和摆脱女性的报价。

将这些引号放在实际的宏周围。

例如

%让macGender =女性;

如果性别NE"& macGender。"然后删除;