* Тема: Cравнение данных по каждому наблюдению со средним значением по всем прочим наблюдениям.
* Ключевые слова: среднее, перебор, сравнение, больница, группа, макрос.
* Опубликован: 17.01.2003 в SPSSX-L, перевод: 27.10.2008.
* Автор: Raynald Levesque.
* Перевод: А. Балабанов.
* Размещение: http://www.spsstools.ru/Syntax/T-Test/CompareMeanOfEachWithMeanOfAllOthers.txt (.sps).
* Проверено: SPSS 15.0.0.
*(Вопрос) У меня имеются данные по 203 больничным центрам, и я хочу сравнить данные каждого из этих 203 центров
со средним значением по всем остальным 202 больницам. Данные записаны в формате
1 строка на 1 больницу и выглядят примерно так:
Id var1 id2
3 1.5 1
5 2.3 0
18 1.4 0
. . .
. . .
. . .
203 2.5 0
Я знаю, что мог бы вручную запрограммировать это на синтаксисе примерно так::
Compute id2=0.
Do if id=3.
Compute id2=1.
End if.
Exe.
MEANS TABLES=var1 BY id2
/CELLS MEAN COUNT STDDEV.
Compute id2=0.
Do if id=5.
Compute id2=1.
End if.
И т.д... для всех 203 больниц.
* (Ответ) Размещён в SPSSX-L, автор: Raynald Levesque, 17.01.2003.
DATA LIST LIST /id var1.
BEGIN DATA
3 1.5
7 2.2
11 3.1
14 2
17 2.3
18 1.9
21 2.2
END DATA.
*///////////.
DEFINE !doit(nb=!TOKENS(1))
COMPUTE casen=$CASENUM.
!DO !cnt=1 !TO !nb.
COMPUTE id2=0.
IF casen=!cnt id2=1.
MEANS TABLES=var1 BY id2
/CELLS MEAN COUNT STDDEV.
!DOEND
!ENDDEFINE.
*///////////.
SET MPRINT=yes.
!doit nb=7.
SET MPRINT=no.
* (в данном случае следует вызвать макрос с параметром=203).