sas - 微距分辨率
问题描述
我有一个宏,它解析为一个包含 & 符号的字符串,这会导致错误WARNING: Apparent symbolic reference A not resolved
。
例如
Data _NULL_;
T=%NRSTR("A&A");
call symput("test",T);
run;
%put &=test.;
有没有办法只解决一次?NR 功能似乎消除了所有的意义&
并阻止了任何解决方案。我只希望它解决一次。
以下示例有效,但我需要它成为数据步骤的一部分,因为还有其他几个正则表达式函数用于创建A&A
字符串。
%let Test=%NRSTR(A&A);
%put &test;
有任何想法吗?
解决方案
在 DATA 步骤中,单引号将发送到宏环境的文本值。
为防止&
被解释为解析请求,%superq
使用时的宏符号。
Data _NULL_;
T = 'A&A';
call symput("test",T);
run;
%put NOTE: test macro symbol value is %superq(test);
---------- LOG ----------
21 %put NOTE: test macro symbol value is %superq(test);
NOTE: test macro symbol value is A&A
推荐阅读
- python - repl.it 中的 Chatterbot sqlite 商店
- php - 安装 oci8 驱动程序:(pecl install oci8)找不到 Oracle Instant Client SDK 头文件(Mac OSX High Sierra)
- visual-studio - 删除 VS Code 中更改的 git 文件旁边的圆圈/点
- com - Ironpython - 附加到已运行程序实例的问题
- jquery - 如何使用 jquery 添加输入
- swift - 如何在 Firebase 中隔离用户数据?
- node.js - NestJS + TypORM 设计模式:解析器与服务
- python-2.7 - 这段代码有什么问题,为什么不能运行
- python-3.x - 如何使用'from ... import ...'语句导入带有两个文件的python包
- php - PHP 在 string2 中找到 string1,其中 string1 来自 MySQL 表