为什么我的宏变量解决?为什么我的宏变量解决?(Why won't my macro vari

2019-05-10 10:58发布

我有一个宏变量, &myvar ,但是当我试图把它放在一个数据步变也不会解决。 为什么不会呢,我能做些什么来解决这个问题?

%let myvar=Hello, world;
data _null_;
  x='&myvar.';
  put x=;
run;

Answer 1:

当他们在单引号,在SAS宏变量不会解决'&myvar' 。 他们需要用双引号, "&myvar" ,以妥善解决。

如果你需要有单引号和解决宏观变量,你有几种选择,但最简单的是:

%str(%'&myvar.%')

%'内部%str将放置在文本字符串中的单引号字符(或撇号)本身,而不会导致其被引用。

data _null_;
  x="%str(%'&myvar.%')";
  put x=;
run;

要么

%let myvar2 = %str(%'&myvar.%');


文章来源: Why won't my macro variable resolve?
标签: sas sas-macro