Macros SAS中keep语句中的宏变量列表
我想在数据步骤中的Macros SAS中keep语句中的宏变量列表,macros,sas,Macros,Sas,我想在数据步骤中的keep语句中使用宏变量中存储的变量名。以下是一个例子: data mydata; set oldata; keep ¯ovar1-¯ovar&lastnum; run; 我尝试使用上面的代码时出错,问题是¯ovar&lastnum&lastnum是我要保留的变量总数。如果我将¯ovar&lastnum替换为¯ovar,我也会得到错误。如果我用¯ovar#替换¯ovar&lastnum,然后分别列
keep
语句中使用宏变量中存储的变量名。以下是一个例子:
data mydata;
set oldata;
keep ¯ovar1-¯ovar&lastnum;
run;
我尝试使用上面的代码时出错,问题是
¯ovar&lastnum
&lastnum
是我要保留的变量总数。如果我将¯ovar&lastnum替换为¯ovar,我也会得到错误。如果我用¯ovar#
替换¯ovar&lastnum
,然后分别列出所有¯ovar
变量,¯ovar1¯ovar2,¯ovar1¯ovar2,¯ovar2>,我就可以让代码正常工作&例如,宏变量#
。要使上述代码正常工作,是否需要某种语法?您不能在这样的自动列表中执行宏变量
您可能应该做的是将值选择到单个宏变量中。你在做这样的事吗
proc sql;
select name into :mvar1-:mvar999
from dataset;
quit;
改为这样做:
proc sql;
select name into :mvarlist separated by ' '
from dataset;
quit;