使用观察值引用SAS中同一表中的列

时间:2017-03-28 08:20:25

标签: sas

我正在使用SAS Enterprise指南,并提供如下表格:

period       year_1       year_2        year_3 
1            100          200           300
2            100          200           300 
3            100          200           300 

我想引用一行:

data table;
    set input;
    chosen_year = year_%eval(period);
run; 

因此period列的值应确定chosen_year列的结果。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您可以将period变量用作数组索引。

SAS中的数组只是变量的集合。因此,您可以在此处将year_1 - year_3分配给数组(然后将year_1 year_2 year_3放入该数组中)并使用period选择列表中的“period_th”条目。

如果它比上面的变量名更复杂,你有其他选择(包括,可能是最初链接的副本 - 虽然对于上面的问题,这个副本是过度的)。

data table;
    set input;
    array year[*] year_1-year_3;
    chosen_year = year[period];
run;