我一直认为如果在里面使用它%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代码包含多个data步骤,并且proc sql- >彼此无关.其中一些可能会抛出错误.发生这种情况时,其余代码将终止.
我需要我的代码继续执行.即使抛出错误,只需将其放入日志中,ERROR : ... 但仍然继续执行.我怎样才能做到这一点 ?
我从这里尝试了一些选项
options noerrorabend;
但我找不到任何有用的东西
我想弄清楚一个字符串包含两个斜杠.正斜杠很容易检查
String test = "12/13/2013";
boolean slash = test.matches("\\d+\\/\\d+\\/\\d+");
Run Code Online (Sandbox Code Playgroud)
但是如何检查反斜杠?
String test = "12\13\2013";
boolean slash = test.matches("\\d+\\\\\\d+\\\\\\d+");
Run Code Online (Sandbox Code Playgroud)
以上不承认吗?我也试过了("\\d+\\\\d+\\\\d+")