Проблема здесь в том, что first.value
и last.value
:
- Не содержат фактическое значение, они просто сообщают вам, является ли наблюдение первым или последним в группе BY
- Невозможно назначить -
last.value =
недопустимый синтаксис
Во-вторых, first.value
и last.value
устанавливаются, только если в by
указана переменная value
заявление. Вместо этого вы должны использовать first.id
и last.id
.
Здесь нам нужно сделать следующее:
- Проверьте, не смотрим ли мы на первое наблюдение в BY -группа на основе
id
- Сохраняйте значение переменной
value
до тех пор, пока не будет достигнуто последнее id
значение - Когда мы смотрим на последнее значение
id
, затем устанавливаем значение из шага 1.
Ответ Алексея охватывает фактический синтаксис, необходимый для этого. Вот как выглядят значения first.id
/ last.id
. (Вы всегда можете просмотреть их, добавив put _all_;
в свой шаг данных):
id value first.id last.id tValue
1 1 1 0 1
1 1 0 0 1
1 2 0 1 1
2 7 1 0 7
2 7 0 0 7
2 7 0 0 7
2 5 0 1 7
. .
. .
. .