SAS为组的其余部分返回组中的第一个值

SAS为组的其余部分返回组中的第一个值,sas,data-manipulation,Sas,Data Manipulation,假设我有以下数据,但我基本上希望复制组中其余值(底部的表)的a和b的第一个值 例如,在组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

假设我有以下数据,但我基本上希望复制组中其余值(底部的表)的a和b的第一个值

例如,在组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

提前感谢。

您可以使用“按组处理”和“保留”语句来执行此操作。请注意,输入数据集需要首先按组进行排序,这样才能工作

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;

a和b的第一个值?谢谢你!你是个救生员。