2015-10-06 678 views
0

我想创建一个存储变量名称的数组。然后索引到数组并传递给函数。到目前为止,我有以下几点:通过SAS数组解析宏变量

%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)

+0

您是否熟悉vname()函数? – Reeza

回答

0

我米不知道我明白你想要做什么。如前所述,您可以使用VNAME查找数组元素的名称。那真的是你需要的吗?

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