2012-03-07 38 views
2

假設我有以下數據,但我基本上想要複製組中其餘值的a和b的第一個值(底部的表)。SAS返回組中其餘組的第一個值

例如,在組1中,a = 3中的第一個值。我想用組3中的2,4,1替換 - 對於變量b是相同的。

原始數據:

grp a b 
---------- 
1 3 2 
1 2 1 
1 4 2 
1 1 3 
2 2 4 
2 1 1 
2 2 2 
2 3 1 

更新的數據:

grp a b 
---------- 
1 3 2 
1 3 2 
1 3 2 
1 3 2 
2 2 4 
2 2 4 
2 2 4 
2 2 4 

在此先感謝。

+0

a和b的第一個值?詳細說明 – Teja 2012-03-07 16:33:06

回答

4

您可以使用按組處理和retain語句來執行此操作。請注意,輸入數據集將需要首先按組進行排序才能生效。

data output(keep=grp a b); 
    retain firsta firstb; 
    set input; 
    by grp; 
    if first.grp then do; 
    firsta = a; 
    firstb = b; 
    end; 
    else do; 
    a = firsta; 
    b = firstb; 
    end; 
run; 
+0

謝謝!你是一個拯救生命的人。 – Ken 2012-03-07 16:57:06

相關問題