1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
* (Вопрос) Как создать переменную с накопленной суммой значений другой переменной.

* (Ответ) Автор: Ray.

DATA LIST LIST /var1.
BEGIN DATA
.
1
4
.
6
.
10
END DATA.

* следующая команда создаёт переменную var2 с накопленной суммой значений по var1,
        однако для пропущенных значений var1 var2 также имеет пропуски
        (это документированное своейство процедуры CREATE).

CREATE var2=CSUM(var1).

* Следующие команды создают переменную var3, которая имеет непропущенные значения даже
	  для пропусков в var1 (за исключением, естественно, ПЕРВЫХ n пропущенных значений).

DO IF $casenum=1.
- COMPUTE var3=var1.
ELSE IF MISSING (LAG(var3)).
- COMPUTE var3=var1.
ELSE IF MISSING (var1).
- COMPUTE var3=LAG(var3).
ELSE.
- COMPUTE var3=var1 + LAG(var3).
END IF.

LIST.