[英]Struggling with passing macro value in SAS
本来,我有这样的代码。
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;
它似乎不像原始代码那样工作。 我什至尝试过这样的事情
您需要%let
而不是&let
。
%let
是用于将值分配给宏变量的宏语句。
&let
是对您(可能)尚未创建的宏变量的引用。
在您的宏声明中用%号代替&在您的前面让let声明并消除女性的引号。
将这些引号放在实际的宏周围。
例如
%let macGender =女性;
如果是Gender NE“&macGender”。 然后删除;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.