#spss
#spss
Вопрос:
Я пытаюсь подсчитать, сколько раз электронное письмо появляется в моих данных. В настоящее время я использую этот код:
AGGREGATE /OUTFILE=* MODE=ADDVARIABLES /BREAK=Email
/Number=N.
Это работает нормально, но отсутствует одно условие, которое мне нужно.
У меня есть другая переменная: неделя (числовая) с параметрами 1, 2, 3, 4, 5, или 6.
Я хочу, чтобы SPSS подсчитывал электронные письма только в том случае, если они появятся на 6-й неделе в какой-то момент.
Так, например:
Email Week N
jane@aol.com 6 2
bill@gmail.com 3
bill@gmail.com 4
sarah@hotmail.com 6 1
jane@aol.com 4 2
Итак, как вы можете видеть, потому что jane@aol.com появился на 6-й неделе по крайней мере один раз, затем я хочу, чтобы он подсчитал остальные появления ее электронной почты в файле (включая те, которых не было на 6-й неделе).
Но Билл, он появляется в файле дважды, но я никогда не хочу его считать, потому что ни один экземпляр не был на неделе 6.
Как я могу отредактировать свой синтаксис для достижения этой цели? Спасибо!
Ответ №1:
Во-первых, повторное создание данных вашего примера:
data list list/email(a50) week(f1).
begin data
"jane@aol.com" 6
"bill@gmail.com" 3
"bill@gmail.com" 4
"sarah@hotmail.com" 6
"jane@aol.com" 4
end data.
Теперь запустите это:
* Identifying emails that had week 6 at least once: .
if week=6 has6=1.
aggregate out=* mode=addvariables overwrite=yes/break=email /has6=max(has6).
* now to count occurences.
aggregate out=* mode=addvariables /break=email /n=sum(has6).