更新时间:2022-12-09 23:12:37
使用两个 SET 语句.第二个 SET 用于领先"处理(与滞后"相反).第二个set语句的数据集和第一个一样,只是偏移了1行(firstobs=2)
.
Use two SET statements. The second SET is for 'lead' processing (as opposed to 'lag'). The data set of the second set statement is the same as the first one but offset by 1 row (firstobs=2)
.
data have;
input ID var1;
datalines;
1 .
1 12
1 23
1 2
2 .
2 266
2 23
2 2
3 .
3 6
run;
data want;
set have;
by id;
set have(firstobs=2 keep=id var1 rename=(id=lead1_id var1=lead1_var1));
if first.id and id=lead1_id then var1=lead1_var1;
drop lead1_id lead1_var1;
run;