Как считать экземпляры текста - PullRequest
1 голос
/ 03 апреля 2019

У меня есть список адресов электронной почты в SPSS. Я пытаюсь написать синтаксис, чтобы подсчитать, сколько раз появляется каждый адрес электронной почты.

Например:

enter image description here

В моем желаемом выводе, если johndoe@aol.com появляется в данных 3 раза, я хочу, чтобы все экземпляры его электронного письма показывали 3 в моем новом столбце.

Я знаю, что могу написать синтаксис для подсчета (например, johndoe@aol.com будет назначен 1 в первый раз, затем 2, а затем 3) ... но это не то, что я хочу.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 03 апреля 2019

Шаги для этого:

  1. Сортировка случаев по электронной почте.
  2. Получение подсчета с помощью команды Aggregate.
  3. Используйте команду Identify Duplicate Cases для генерациииндикатор того, является ли данное письмо первым в своем роде в файле.
  4. Выбор случаев, которые не являются первыми для этого конкретного электронного письма.

Все четыре из этих команд находятся в меню «Данные» в графическом интерфейсе.Синтаксис, чтобы сделать все это:

SORT CASES BY Email.

    *This will create a new variable N_EMAIL with the counts.  It will appear for every case.
    AGGREGATE
      /OUTFILE=* MODE=ADDVARIABLES
      /PRESORTED
      /BREAK=Email
      /N_EMAIL=N.

*Now we generate a "PrimaryFirst" indicator showing whether a given case is the first instance of its email.
    MATCH FILES
      /FILE=*
      /BY Email
      /FIRST=PrimaryFirst
      /LAST=PrimaryLast.
    DO IF (PrimaryFirst).
    COMPUTE  MatchSequence=1-PrimaryLast.
    ELSE.
    COMPUTE  MatchSequence=MatchSequence+1.
    END IF.
    LEAVE  MatchSequence.
    FORMATS  MatchSequence (f7).
    COMPUTE  InDupGrp=MatchSequence>0.
    SORT CASES InDupGrp(D).
    MATCH FILES
      /FILE=*
      /DROP=PrimaryLast InDupGrp MatchSequence.
    EXECUTE.

*Filter out duplicate cases.
    SELECT IF PrimaryFirst = 1.
    EXECUTE.

*Final cleanup.

    DELETE VARIABLES PrimaryFirst.
1 голос
/ 03 апреля 2019

Просто запустите это:

AGGREGATE /OUTFILE=* MODE=ADDVARIABLES /BREAK=EmailAddress /num_instances=N.

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

...