Как мне вычислить новую переменную, используя данные других респондентов в SPSS? - PullRequest
0 голосов
/ 14 апреля 2019

У меня есть набор данных из анкеты, в котором каждому участнику предлагается назначить кого-либо, а затем оценить этого человека по нескольким талантам. Переменные, которые относятся к этому:

Идентификатор участника (id)

Удостоверение личности назначенного лица (номинал)

Набор вопросов о кандидате по шкале 0-7 (q1 - q10)

Среднее значение q1 - q10 (qmean)

Как бы я отформатировал синтаксическую команду, которая вычисляет новую переменную, равную среднему значению qmean других участников, если они назначают индивида (то есть, если их номиналы равны идентификатору индивида)?

Очевидно -

do if nomid = id. 
compute qmeangot = mean(qmean). 
execute. 

не сработает, потому что тогда он просто создаст переменную, идентичную qmean этого участника, если они каким-то образом назначат себя.

Я не могу найти в Интернете ничего, говорящего о том, как использовать оценки нескольких участников для переменной в синтаксической команде.

1 Ответ

1 голос
/ 14 апреля 2019

Вам нужно агрегировать по переменной nomid, чтобы получить среднее значение qmean, затем заново присоединить новые данные к исходным данным, чтобы каждый участник получил среднее значение номинаций (если они были).

Это создание поддельных данных для демонстрации на:

data list list/id nomid (2a1) qmean (f6.2).
begin data
'a' 'b' 5.3
'b' 'a' 4.2
'c' 'a' 6.1
'd' 'b' 5.5
'e' 'c' 4.3
end data.

Теперь для выполнения актуальной задачи:

dataset name gen.
sort cases by id.
dataset declare agg.
aggregate out=agg  /break nomid /nomMean=mean(qmean). /*this created the requested calculation.
match files /file=* /table=agg/ rename nomid=id /by id. /* this attaches it back to original data.
exe.
...