SAS函数与双引号和单引号参数字符串的区别

时间:2015-08-04 13:15:17

标签: string sas

在Sas中的

,单引号的情况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;

2 个答案:

答案 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尝试将&符号解释为宏变量的指示符,请使用单引号。