解析SAS数组,宏变量

时间:2015-10-06 14:21:13

标签: arrays loops sas do-loops

我想创建一个存储变量名称的数组。然后索引到数组并传递给函数。到目前为止,我有以下内容:

%let variables = cat dog lion sheep;

data _null_;
  array a_vars[*] &variables;
  do i = 1 to dim(a_vars);
    some_function(a_vars[i],i);
  end;
run;

我遇到了一个问题,即将变量分配给数组,然后将函数中的数组编入索引:some_function(cat, 1)some_function(dog,2)等。

1 个答案:

答案 0 :(得分:0)

我不确定我到底知道你想做什么。如上所述,您可以使用VNAME查找i th 数组元素的名称。这真的是你需要的吗?

26         data _null_;
27            array a_vars[*] &variables;
28            length name $32;
29            do i = 1 to dim(a_vars);
30               name = vname(a_vars[i]);
31               put (i name) (=);
32               end;
33            run;

i=1 name=cat
i=2 name=dog
i=3 name=lion
i=4 name=sheep