相关疑难解决方法(0)

为什么不让%创建一个本地宏变量?

我一直认为如果在里面使用它%let会创建一个local变量%macro . . . %mend

但是当我运行此代码时,SAS日志显示 GLOBAL TESTVAR value1

%let testVar = value2; 
%macro test; 
%let testVar = value1; 
%mend;   

%test 

%put _all_;
Run Code Online (Sandbox Code Playgroud)

所以,我无法理解为什么全局变量的值testVar改变为value1.我原以为它没有改变value2.在%let里面的语句%macro应该影响只在本地符号表.

SAS文档说:

当宏处理器执行可以创建宏变量的宏程序语句时,如果没有可用的具有相同名称的宏变量,宏处理器将在本地符号表中创建该变量

sas

6
推荐指数
1
解决办法
427
查看次数

标签 统计

sas ×1