Macros 使用多个宏变量作为值创建SAS数据集

Macros 使用多个宏变量作为值创建SAS数据集,macros,sas,Macros,Sas,我有几个宏变量。比如说, %let var1 = GOOD; %let var2 = BETTER; %let var3 = BEST; 我想做的是使用这些宏变量创建一个数据集,如下所示 数据集名称:score 变量名:var Obs var 1 GOOD 2 BETTER 3 BEST 试试这个: data want; format var $12.; var = "&var1"; output; var="&var2

我有几个宏变量。比如说,

%let var1 = GOOD;
%let var2 = BETTER;
%let var3 = BEST;
我想做的是使用这些宏变量创建一个数据集,如下所示

数据集名称:score 变量名:var

Obs   var
1     GOOD
2     BETTER
3     BEST
试试这个:

data want;
   format var $12.;

   var = "&var1";
   output;

   var="&var2";
   output;

   var="&var3";
   output;
run;

proc print data=want;
run;

如果有命名约定,可以查询sashelp.vmacro表:

data _null_;
set sashelp.class;
call symput('name'||put(_n_, 2. -l), name);
run;

%put &name1.;
%put &name19.;

proc sql;
    create table want as
    select name, value
    from sashelp.vmacro
    where substr(name, 1, 4)='NAME';
quit;

谢谢!你能再简化一点吗?你希望它怎样变得更简单?你想要的东西是通用的N变量。通常,您不希望从宏中获取值并将其放入数据表中。