我想弄明白这一点。我有一个表如下,我正在尝试使用最后一个非零值的变量名填充最后一列(如最后一列所示):
ID MTH_1 MTH_2 MTH_3 MTH_4 MTH_5 MONTH_LAST_BALANCE
--------------------------------------------------------------
1 10 0 10 20 10 MTH_5
2 5 10 15 5 0 MTH_4
3 5 10 5 0 0 MTH_3
4 1 2 3 1 0 MTH_4
5 1 0 0 0 0 MTH_1
我猜我需要使用某种数组来完成这项工作,但我不知道。根据第1行,我只需要 last 非零值,而不是其他一些代码似乎要检索的最左边的值。
任何帮助都会很有用。
干杯
答案 0 :(得分:2)
data want ; set have ; /* Load MTH_1 to MTH_5 into array */ array m{*} MTH_1-MTH_5 ; length MONTH_LAST_BALANCE $5. ; /* Iterate over array */ do i = 1 to dim(m) ; /* Use vname function to get variable name from array element */ if m{i} > 0 then MONTH_LAST_BALANCE = vname(m{i}) ; end ; run ;