SAS返回组中其余组的第一个值
问题描述:
假设我有以下数据,但我基本上想要复制组中其余值的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
在此先感谢。
答
您可以使用按组处理和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
a和b的第一个值?详细说明 – Teja 2012-03-07 16:33:06