我正在尝试使用%STR函数来屏蔽字符串中的%。像这样的代码:
options symbolgen;
%let grp=%str(%C16F%);
%put group is &grp;
它不起作用。实际上当我点击代码后,SAS什么都不做。没有任何事情发生。
你知道原因吗?如何解决?感谢您的帮助! 升。
答案 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%'));