使用多个数据集设置语句SAS,生成错误22-322:语法错误

时间:2017-01-08 00:19:40

标签: sas dataset

我试图在一次拍摄中使用多个数据集的set语句,即我有数据集vmoreranked1,vmoreranked2,vmoreranked3,...但不断收到错误

 data stackorig;
set vmoreranked1-vmoreranked&vmcnt; run;
                  -
                  22
  

错误22-322:语法错误,期望以下之一:名称,a   引用字符串,(,;,END,KEY,                 KEYS,NOBS,OPEN,POINT, DATA LAST NULL

     

注意:由于错误,SAS系统停止处理此步骤。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

除非您运行的旧版SAS不支持使用数据集名称范围,否则您的宏变量中可能会有前导空格。例如,如果我运行此代码:

data _null_;
  call symput('vmcnt','   2');
run;

data stackorig;
  set vmoreranked1-vmoreranked&vmcnt;
run;

我收到了您的错误消息,但我还收到了另一条解释问题的消息。

2071  vmoreranked   2
                    -
                    22
                    200
ERROR: Missing numeric suffix on a numbered data set list (WORK.vmoreranked1-WORK.vmoreranked).
ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, (, ;, CUROBS,
              END, INDSNAME, KEY, KEYRESET, KEYS, NOBS, OPEN, POINT, _DATA_, _LAST_, _NULL_.

ERROR 200-322: The symbol is not recognized and will be ignored.

您应该修复如何创建宏变量,以便不包含前导空格。

或者你可以通过重新创建它来删除前导空格:

%let vmcnt=&vmcnt ;