Why won't my macro variable resolve?

喜你入骨 提交于 2019-11-26 00:44:33

问题


I have a macro variable, &myvar, but it won\'t resolve when I try to put it in a data step variable. Why won\'t it, and what can I do to fix this?

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

回答1:


Macro variables in SAS won't resolve when they are in single quotes, '&myvar'. They need to be in double quotes, "&myvar", in order to resolve properly.

If you need to have single quotes and a resolved macro variable, you have a few options, but the simplest is:

%str(%'&myvar.%')

The %' inside of %str will place a single quote character (or apostrophe) in the text string by itself without causing it to be quoted.

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

or

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


来源:https://stackoverflow.com/questions/27946244/why-wont-my-macro-variable-resolve

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!