SAS中数据集的宏变量列表

时间:2014-02-26 18:31:01

标签: sas

我有一个宏变量,如下所示

%let myGrp = ('ctry', 'age')

我想要做的就是创建一个名为TestGrp的数据集,其中包含以下内容

GROUPS
ctry
age

我无法弄清楚如何做到这一点。非常感谢任何帮助

谢谢!

2 个答案:

答案 0 :(得分:3)

SCAN是最能帮助您的功能。赔率是你的整个方法可以改善,但从这开始......

%let myGrp = ('ctry', 'age');
data yourdata;
do _t = 1 to countc("&mygrp",",")+1;
  groups = scan("&myGrp",_t,"'(,) ");
  output;
end;
run;

SCAN可以使用任意数量的分隔符,并且可以在此处删除您不想要的字符。从长远来看,%let mygrp=ctry,age;也同样如此 - 报价等也无济于事。

答案 1 :(得分:0)

这是一个有效的例子(对不起西班牙名字):

%let sListaDeValoresAutorizados= ('ctry', 'age');
%LET LISTA_VALORES = %UNQUOTE(%sysfunc(compress("&sListaDeValoresAutorizados","(')")));

DATA yourdata;
    %DO _t = 1 %TO %sysfunc(countw("&LISTA_VALORES",','));
        GROUPS = strip(scan("&LISTA_VALORES",&_t,","));
        OUTPUT;
    %END;
RUN;