为什么我的宏变量不能解决?

为什么我的宏变量不能解决?

我有一个宏变量,&myvar但是当我尝试将它放入数据步变量时它不会解析。为什么不呢,我该怎么做才能解决这个问题呢?

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


BIG阳
浏览 517回答 2
2回答

慕的地8271018

SAS中的宏变量在单引号中时无法解析'&myvar'。它们需要用双引号,"&myvar"以便妥善解决。如果你需要单引号和已解析的宏变量,你有几个选项,但最简单的是:%str(%'&myvar.%')该%'内%str将放置在文本字符串中的单引号字符(或撇号)本身,而不会导致其被引用。data _null_;   x="%str(%'&myvar.%')";   put x=;run;要么%let myvar2 = %str(%'&myvar.%');

陪伴而非守候

在某些情况下,创建一个比其他问题复杂度更低的“虚拟”问题更容易,但仍会回答经常出现的问题,然后将其用作复制品。“虚拟”问题在技术上应该仍然是一个好问题(因为这是),但当然不是要求查找信息的目的:)
打开App,查看更多内容
随时随地看视频慕课网APP