【发布时间】:2016-07-04 09:04:58
【问题描述】:
我有一种情况,我需要为表名分配一个宏变量,该宏变量的值是从另一个宏变量派生的。
但是,宏中生成的代码使用的是推导公式,而不是推导值本身。
%macro testing;
%let n=2;
%let k=&n-1;
%let opp=&k;
PROC SQL;
CREATE TABLE WORK.TABLE_&opp AS
SELECT * from WORK.SOURCETABLE;
QUIT;
%mend;
%testing
这导致生成代码时出错
NOTE: Line generated by the macro variable "OPP".
34 WORK.TABLE_2-1
_
22
200
ERROR 22-322: Syntax error,
但我希望生成的表将被命名为 WORK.TABLE_1 而不是 WORK.TABLE_2-1。
那么如何强制 SAS 识别变量 opp=1 而不是 opp=2-1?
谢谢
【问题讨论】:
-
support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/… - 您可以在此处阅读有关 %eval 的信息
标签: sas