首页 > 解决方案 > 如何计算文本实例

问题描述

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

例如:

在此处输入图像描述

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

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

谢谢!

标签: spss

解决方案


执行此操作的步骤:

  1. 通过电子邮件对案例进行排序。
  2. 使用聚合命令获取计数。
  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.

推荐阅读