SAS:宏引用的表观符号引用未解析
我已经理解,并在其他程序中看到,以下语法是正确的SAS:宏引用的表观符号引用未解析,sas,Sas,我已经理解,并在其他程序中看到,以下语法是正确的 %let variable = 'something'; statement name "&variable\othertext"; // something\othertext 然而,在我编写的代码中,我得到了这样一条错误消息:未解析明显的符号引用。对于行LIBNAME REMOTE %let month = 'JUN'; %let year = '18'; %let z
%let variable = 'something';
statement name "&variable\othertext"; // something\othertext
然而,在我编写的代码中,我得到了这样一条错误消息:未解析明显的符号引用。对于行LIBNAME REMOTE
%let month = 'JUN';
%let year = '18';
%let zos = ***********
signon zos ********************;
libname name "*********************************";
rsubmit;
libname remote "AAAA.BBBB.&month&year.SASLIB" access = readonly;
proc download inlib=remote outlib=name;
run;
libname remote clear;
endrsubmit;
signoff;
我遗漏了什么?更多的上下文可能会有所帮助,但很可能您不了解句点在解析宏变量符号引用中所起的作用。要允许您在宏变量引用旁边放置字母和数字,SAS需要一种方法来告诉宏的名称从何处结束,纯文本从何处开始。句号用于此 所以如果你想生成这个字符串
"AAAA.BBBB.JAN18.SASLIB"
从月份和年份值。首先确保将宏变量设置为实际需要的文本。引号只是宏处理器的文本
%let month=JAN ;
%let year= 18;
然后,当您使用宏变量引用替换这些值时,您将需要在年之后额外的一段时间,以便实际生成一个周期。您可能应该养成在引用宏变量时总是添加句点的习惯
"AAAA.BBBB.&month.&year..SASLIB"
更多的上下文可能会有所帮助,但很可能您不了解句点在解析宏变量符号引用中所起的作用。要允许您在宏变量引用旁边放置字母和数字,SAS需要一种方法来告诉宏的名称从何处结束,纯文本从何处开始。句号用于此 所以如果你想生成这个字符串
"AAAA.BBBB.JAN18.SASLIB"
从月份和年份值。首先确保将宏变量设置为实际需要的文本。引号只是宏处理器的文本
%let month=JAN ;
%let year= 18;
然后,当您使用宏变量引用替换这些值时,您将需要在年之后额外的一段时间,以便实际生成一个周期。您可能应该养成在引用宏变量时总是添加句点的习惯
"AAAA.BBBB.&month.&year..SASLIB"
月份和年份宏变量是在本地会话中定义的,而您正试图在远程会话中解析它们
使用%SYSRPUT和%SYSLPUT在会话之间分配宏变量
/* Local to remote */
%LET MONTH = 12 ;
%LET YEAR = 2018 ;
%SYSLPUT MONTH = &MONTH ;
%SYSLPUT YEAR = &YEAR ;
rsubmit ;
%PUT &MONTH &YEAR ;
/* resolves 12 and 2018 respectively */
/* remote to local */
%SYSRPUT FOO = BAR ;
endrsubmit ;
%PUT &FOO ; /* resolves to BAR */
月份和年份宏变量是在本地会话中定义的,而您正试图在远程会话中解析它们
使用%SYSRPUT和%SYSLPUT在会话之间分配宏变量
/* Local to remote */
%LET MONTH = 12 ;
%LET YEAR = 2018 ;
%SYSLPUT MONTH = &MONTH ;
%SYSLPUT YEAR = &YEAR ;
rsubmit ;
%PUT &MONTH &YEAR ;
/* resolves 12 and 2018 respectively */
/* remote to local */
%SYSRPUT FOO = BAR ;
endrsubmit ;
%PUT &FOO ; /* resolves to BAR */
在综合了克里斯J.和汤姆的答案后,剧本开始运作了!在综合了克里斯J.和汤姆的答案后,剧本开始运作了!