Я использовал следующий код для создания новой переменной, которая представляет предыдущее значение close_midpoint путем разделения другой группы _ric.
data test;
set HAVE;
lric=lag(_ric);
if lric=_ric then lclose_midpoint=lag(close_midpoint);
else lclose_midpoint=.;
run;
Однако, как показано на следующем рисунке, значение лага close_midpoint в красном квадрате равно последнему значению close_midpoint в предыдущей группе _ric. Например, точка lclose_midpoint в наблюдении 7 должна быть 4,675, тогда как в фактическом результате она равна 4,2. Так в чем же проблема в моем коде? Спасибо.