2017-10-09 10 views
0

私はこれを理解しようとしています。次のように私は、テーブルを持っているし、(最後の列に示すように)私は、最後の非ゼロ値の変数名を持つ最後の列を移入しようとしている:私は、私が使用する必要が推測しているSAS:最後に非ゼロ観測の変数名を取得する

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によると、の最後のはゼロ以外の値のみで、他のコードが取得する最も左の値ではありません。

何か助けが必要です。

乾杯

答えて

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 ; 
+0

それは働きました!手伝ってくれてどうもありがとう :) – iain

関連する問題