Вы можете использовать несколько функций, чтобы получить желаемый результат.Как упоминалось в другом ответе, вы можете использовать функцию dif
, которая будет возвращать current_obs-previous_obs
в наборе данных.В качестве альтернативы вы можете использовать оператор retain
.
proc sort data=have;
by group date;
run;
data want(drop=last_date);
set have;
by group date;
retain last_date;
if first.date then Difference = .;
else Difference = date - last_date;
* Set the variable last_date equal to the current date;
last_date = date;
run;
Если вы опустите drop=
, значение last_date
будет последним значением даты.