构建一系列非顺序变量

时间:2015-08-21 16:55:20

标签: arrays sas

我有一个包含~6000个变量的数据集,这些变量在82个组中。变量名称全部采用" a001yr,a001sta,a001tot ... a082tot" (换句话说," a cyclenum setsuffix ")。有没有办法干净地挑选出一个特定集合的所有数值变体(例如a001yr,a002yr,... a082yr)来构建一个数组?还是我不习惯手写出全套变量?

(我使用的是SAS 9.2)

1 个答案:

答案 0 :(得分:0)

您的描述仍然有点模糊,有哪些规则可以定义'一个特定的集合'?对于您的示例,您可以尝试以下操作:

 proc sql;
  select name into :varname separated by ' ' from dictionary.columns 
where libNAME='WORK' and upcase(memname)='TEST' AND PRXMATCH('/a\d+yr/io',name) > 0 and type='num';
quit;

代码使用PRX函数(我相信它们可用于9.2)从“工作”中选择这些变量名称。图书馆,' TEST'表格,以' a'开头,然后是一堆数字,以' yr'结尾。还有数字,然后将它们放入宏变量varname中,这样就可以在下游数据步骤代码中使用它,例如:

data want;
 set test;
 array tst &varname;
 blah blah;
 run;
相关问题