Подсчет количества появлений с условием - PullRequest
1 голос
/ 18 апреля 2019

Я пытаюсь посчитать, сколько раз электронное письмо появляется в моих данных. В настоящее время я использую этот код:

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 Ответ

0 голосов
/ 18 апреля 2019

Во-первых, воссоздайте данные вашего примера:

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