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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
* Подсчитать число последовательных 30-минутных отрезков, в течение которых наблюдалась гипоксия.
* Написано rlevesque@videotron.ca в ответ на вопрос, заданный в SPSSX-L.

DATA LIST FIXED /dep_int 1-1 do_pc 18-19.
BEGIN DATA
1 10-10-97 10:00 48
1 10-10-97 10:30 79
1 10-10-97 11:00 36
1 10-10-97 11:30 24
1 10-10-97 12:00 22
1 10-10-97 12:30 18
1 10-10-97 13:00 57
1 10-10-97 13:30 78
2 10-10-97 14:00 15
2 10-10-97 14:30 10
2 10-10-97 15:00 8
2 10-10-97 15:30 22
2 10-10-97 16:00 38
2 10-10-97 16:30 44
END DATA.

LIST.

COMPUTE casen=$casenum.
COMPUTE hypoxia=do_pc<28.
DO IF $casenum=1 | (dep_int<>LAG(dep_int)).
COMPUTE nb=hypoxia.
IF MISSING(nb) nb=0.
ELSE.
COMPUTE nb=(LAG(nb)+hypoxia)*hypoxia.
IF MISSING(nb) nb=0.
END IF.
EXECUTE.
VARIABLE LABEL nb 'nb - число последовательных 30-минутных отрезков гипоксии'.
* выполните синтаксис до этой точки, посмотрите в редактор данных, всё ли в порядке.

*----- пометим те записи, которые содержат максимальное число последовательных периодов.

SORT CASES BY casen(D).
DO IF $casenum=1.
COMPUTE flag=nb>1.
ELSE.
COMPUTE flag=(nb>1) &(LAG(nb)=0).
END IF.
EXECUTE.
* выполните синтаксис до этого момента. Вы увидите, что flag=1 для тех записей,.
* которые содержа число последовательных периодов гипоксии в экспериментальном отрезке (dep_int).

SELECT IF flag.
* следующее преобразование выполняется из тех соображений, что нам нужно по крайней мере 2 наблюдения
* гипоксии в 2 30-минутных отрезках, чтобы сообщить о 1 последовательном отрезке гипоксии.
COMPUTE nb=nb-1.
EXECUTE.

*Отображаем на гистограмме количество 30-минутных отрезков гипоксии.
GRAPH
  /HISTOGRAM=nb .