Подсчет количества появлений с условием

#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).