2012-03-07 58 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

相关问题