如何计算文本实例
How to count instances of text
我在 SPSS 中有一个电子邮件地址列表。我正在尝试编写语法来计算每个电子邮件地址出现的次数。
例如:
在我想要的输出中,如果 johndoe@aol.com 在数据中出现 3 次,我希望他的电子邮件的所有实例在我的新列中显示 3。
我知道我可以编写语法让它计数(即 johndoe@aol.com 第一次被分配 1,然后 2 然后 3)...但这不是我想要的。
谢谢!
执行此操作的步骤:
- 按电子邮件排序案例。
- 使用聚合命令获取计数。
- 使用“识别重复案例”命令生成一个指示符,指示给定的电子邮件是否是文件中同类电子邮件中的第一封。
- Select 个不是第一个使用该特定电子邮件的案例。
所有这四个命令都在 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.
就运行这个:
AGGREGATE /OUTFILE=* MODE=ADDVARIABLES /BREAK=EmailAddress /num_instances=N.
一个名为 num_instances
的新列将出现在数据集中(您当然可以 select 另一个名称),它将在每个电子邮件地址的所有实例中出现所需的计数。
我在 SPSS 中有一个电子邮件地址列表。我正在尝试编写语法来计算每个电子邮件地址出现的次数。
例如:
在我想要的输出中,如果 johndoe@aol.com 在数据中出现 3 次,我希望他的电子邮件的所有实例在我的新列中显示 3。
我知道我可以编写语法让它计数(即 johndoe@aol.com 第一次被分配 1,然后 2 然后 3)...但这不是我想要的。
谢谢!
执行此操作的步骤:
- 按电子邮件排序案例。
- 使用聚合命令获取计数。
- 使用“识别重复案例”命令生成一个指示符,指示给定的电子邮件是否是文件中同类电子邮件中的第一封。
- Select 个不是第一个使用该特定电子邮件的案例。
所有这四个命令都在 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.
就运行这个:
AGGREGATE /OUTFILE=* MODE=ADDVARIABLES /BREAK=EmailAddress /num_instances=N.
一个名为 num_instances
的新列将出现在数据集中(您当然可以 select 另一个名称),它将在每个电子邮件地址的所有实例中出现所需的计数。