首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAS:在宏变量中保留与号

SAS:在宏变量中保留与号
EN

Stack Overflow用户
提问于 2017-09-27 06:37:40
回答 1查看 1.4K关注 0票数 3

这应该很简单,但我搞不清楚:在某些情况下,我需要从表的内容创建宏变量,而它们有时包含&符号(&)作为文本的一部分。当我调用宏变量时,如何让SAS忽略&符号?例如,这段代码...

代码语言:javascript
复制
data _null_;
test="Amos&Andy";
call symputx("testvar",test);
run;
%put testvar=&testvar;

将以下内容...writes到日志中:

代码语言:javascript
复制
28   data _null_;
29   test="Amos&Andy";
WARNING: Apparent symbolic reference ANDY not resolved.
30   call symputx("testvar",test);
31   run;

NOTE: DATA statement used (Total process time):
  real time           0.00 seconds
  cpu time            0.00 seconds


WARNING: Apparent symbolic reference ANDY not resolved.
32   %put testvar=&testvar;
testvar=Amos&Andy

如何让SAS忽略与号,并且不将警告写入日志?非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-09-27 07:03:52

第一个警告很容易避免。宏变量引用不能在单引号内解析,因此您可以使用:

代码语言:javascript
复制
data _null_;
test='Amos&Andy';
call symputx("testvar",test);
run;

当您想要解析&testvar时,您需要一种方法来告诉宏处理器不要解析解析&testvar所揭示的任何宏触发器。这就是宏引用的目的:

代码语言:javascript
复制
%put testvar=%superq(testvar);

%SUPERQ告知宏处理器解析宏变量Testvar,并引用(即屏蔽)解析Testvar所揭示的任何宏触发器。这将阻止宏处理器查找名为Andy的宏变量。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46436809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档