Ken*_*Ken 2 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
Run Code Online (Sandbox Code Playgroud)
更新数据:
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
Run Code Online (Sandbox Code Playgroud)
提前致谢.
小智 5
您可以使用分组处理和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;
Run Code Online (Sandbox Code Playgroud)