我有变量名存储在宏变量中,我希望在数据步骤的keep
语句中使用。以下是一个例子:
data mydata;
set oldata;
keep ¯ovar1-¯ovar&lastnum;
run;
我在尝试使用上面的代码时遇到错误,问题是¯ovar&lastnum
。 &lastnum
是我想要保留的变量总数。如果我用& macrovar#替换& macrovar& lastnum,我也会得到错误。如果我将¯ovar&lastnum
替换为¯ovar#
,然后单独列出所有¯ovar
变量,¯ovar1 ¯ovar2 ... ¯ovar#
,我可以让代码生效。是否有必要的语法才能使上面的代码工作?
答案 0 :(得分:2)
你不能在这样的自动列表中做宏变量。
您可能应该做的是将值选择为单个宏变量。你在做这样的事吗?
proc sql;
select name into :mvar1-:mvar999
from dataset;
quit;
请改为:
proc sql;
select name into :mvarlist separated by ' '
from dataset;
quit;