如何计算SPSS中的文本实例

时间:2019-04-03 12:41:56

标签: spss

我有SPSS中的电子邮件地址列表。我正在尝试编写语法来计算每个电子邮件地址出现的次数。

例如:

enter image description here

在所需的输出中,如果johndoe@aol.com在数据中出现3次,则我希望他的电子邮件的所有实例在新列中显示3。

我知道我可以编写语法来对其进行计数(即johndoe@aol.com第一次被分配1,然后分配给2,然后分配给3)...但这不是我想要的。

谢谢!

2 个答案:

答案 0 :(得分:1)

执行此操作的步骤:

  1. 通过电子邮件对案件进行排序。
  2. 使用Aggregate命令获取计数。
  3. 使用“识别重复案例”命令来生成一个指示符,以指示给定的电子邮件是否是文件中的首例。
  4. 选择不是特定电子邮件中最先出现的案件。

所有这四个命令都位于GUI的“数据”菜单中。语法可以完成整个事情:

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 :(得分:1)

只需运行:

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

新的列将出现在名为num_instances的数据集中(您当然可以选择其他名称),该列将在每个电子邮件地址的所有实例中出现所需的计数。