我有一个宏变量,&myvar
但是当我尝试将它放入数据步变量时它不会解析.为什么不呢,我该怎么做才能解决这个问题呢?
%let myvar=Hello, world;
data _null_;
x='&myvar.';
put x=;
run;
Run Code Online (Sandbox Code Playgroud)
Joe*_*Joe 10
SAS中的宏变量在单引号中时无法解析'&myvar'
.它们需要用双引号,"&myvar"
以便妥善解决.
如果你需要单引号和已解析的宏变量,你有几个选项,但最简单的是:
%str(%'&myvar.%')
Run Code Online (Sandbox Code Playgroud)
该%'
内%str
将放置在文本字符串中的单引号字符(或撇号)本身,而不会导致其被引用.
data _null_;
x="%str(%'&myvar.%')";
put x=;
run;
Run Code Online (Sandbox Code Playgroud)
要么
%let myvar2 = %str(%'&myvar.%');
Run Code Online (Sandbox Code Playgroud)