SAS%STR功能不起作用

时间:2018-03-28 21:10:11

标签: macros sas

我正在尝试使用%STR函数来屏蔽字符串中的%。像这样的代码:

options symbolgen;
%let grp=%str(%C16F%);
%put group is &grp;

它不起作用。实际上当我点击代码后,SAS什么都不做。没有任何事情发生。

你知道原因吗?如何解决?

感谢您的帮助! 升。

1 个答案:

答案 0 :(得分:3)

%STR()需要您在字符串中的第二个%前面添加额外的%,否则它会认为您正在尝试使用%来避开右括号。这就是为什么它似乎没有运行。 %LET语句仍在等待查看%str()函数调用和终端;的结束。

%let grp=%str(%C16F%%);
%put group is &grp;

我发现使用数据步骤和%superq()更容易确保引用该值。

data _null_;
  call symputx('grp','%C16F%');
run;
%let grp=%superq(grp);

或使用%qsysfunc()致电dequote()删除物理单引号并添加宏报价。

%let grp=%qsysfunc(dequote('%C16F%'));