Сосчитать последовательные 30-минутные интервалы когда наблюдалась гипоксия
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 . |
Related pages
...