,单引号的情况1下面运行良好,但是双引号字符串参数的情况2
case 1:
data _null_;
a = lowcase('ABC');
run;
case 2:
data _null_;
a = lowcase("ABC");
run;
825 data _null_;
826 a = lowcase("ABC");
-
386
200
76
ERROR 386-185: Expecting an arithmetic expression.
ERROR 200-322: The symbol is not recognized and will be ignored.
ERROR 76-322: Syntax error, statement will be ignored.*
827 run;
答案 0 :(得分:0)
这是一个假的问题。 系统重启后,问题就消失了。 单引号和双引号都可以相同。
答案 1 :(得分:-1)
我重新运行了你的代码,它在SAS 9.3上运行得非常好
data _null_; a = lowcase('ABC'); put a; run;
abc
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
data _null_; a = lowcase("ABC"); put a; run;
abc
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
查看日志,之前有800行代码。查看错误,第二种情况解释" ABC"作为一个宏变量。宏变量不会在单引号中解释,这就是第一种情况正常工作的原因。
我希望您在此处发布代码之前更改了代码,并且在您的实际代码中,您将拥有类似" lowcase(" ABCD& EDGR")并且带有&符号的内容。如果是这种情况,则&符号是SAS认为您将宏变量传递给它的原因。如果您不希望SAS尝试将&符号解释为宏变量的指示符,请使用单引号。