PROC DATASETS 宏变量错误
PROC DATASETS macro variable error
我能够将宏变量解析为我期望的名称。但是 proc 数据集中的 delete 语句没有得到识别。如何让它发挥作用?
PROC DATASETS LIB=WORK NODETAILS NOLIST;
DELETE &INPUT._mi &INPUT._lc ;
RUN;
MPRINT(GET_true_value): PROC DATASETS LIB=WORK NODETAILS NOLIST;
NOTE: Line generated by the macro variable "INPUT".
108 work.true_value_mi
__________________
22
201
MPRINT(GET_true_value): DELETE work.true_value_mi work.true_value_lc ;
NOTE: Enter RUN; to continue or QUIT; to end the procedure.
MPRINT(GET_true_value): RUN;
ERROR 22-322: Expecting a name.
ERROR 201-322: The option is not recognized and will be ignored.
NOTE: Statements not processed because of errors noted above.
109
看起来问题在于写入的删除语句包含库名称。这不是必需的(并且会引发错误),因为库是在 PROC DATASETS 语句中指定的。
您希望您的宏变量解析为:
PROC DATASETS LIB=WORK NODETAILS NOLIST;
DELETE true_value_mi ;
RUN;
我能够将宏变量解析为我期望的名称。但是 proc 数据集中的 delete 语句没有得到识别。如何让它发挥作用?
PROC DATASETS LIB=WORK NODETAILS NOLIST;
DELETE &INPUT._mi &INPUT._lc ;
RUN;
MPRINT(GET_true_value): PROC DATASETS LIB=WORK NODETAILS NOLIST;
NOTE: Line generated by the macro variable "INPUT".
108 work.true_value_mi
__________________
22
201
MPRINT(GET_true_value): DELETE work.true_value_mi work.true_value_lc ;
NOTE: Enter RUN; to continue or QUIT; to end the procedure.
MPRINT(GET_true_value): RUN;
ERROR 22-322: Expecting a name.
ERROR 201-322: The option is not recognized and will be ignored.
NOTE: Statements not processed because of errors noted above.
109
看起来问题在于写入的删除语句包含库名称。这不是必需的(并且会引发错误),因为库是在 PROC DATASETS 语句中指定的。
您希望您的宏变量解析为:
PROC DATASETS LIB=WORK NODETAILS NOLIST;
DELETE true_value_mi ;
RUN;