使用名称拼写错误清理 SPSS 中的数据

Cleaning data in SPSS with name misspellings

我有一个 500 万条基本格式的记录数据集:

FName LName UniqueID DOB       
John  Smith  987678  10/08/1976
John  Smith  987678  10/08/1976
Mary  Martin 567834  2/08/1980 
John  Smit   987678  10/08/1976
Mary  Martin 768987  2/08/1980 

出生日期总是唯一的,但我遇到过以下情况: 相同 ID,不同名称拼写或不同 ID,相同名称

我已经让 SPSS 识别出具有相同 DOB 的 John Smit 和 John Smith 是同一个人,并且我使用聚合来显示在姓名附近使用拼写的次数(John Smith,10;约翰·斯密特 5).

案例一: 我想做的是遍历所有被识别为同一个人的记录,并获得该人姓名的最常见拼写并将其用作他们的标准名称。

案例二: 如果我有同一个人的多个 ID,请取最低的一个并将其作为标准。

我很乐意使用基本语法来清理我的数据,但这是我唯一坚持的事情。

如果 UniqueID 是人口中个人的真正唯一 ID,并且您想要查找名称拼写的变体(在这些 ID 的分组内)并分配模式出现,那么像这样的事情会起作用:

STRING FirstLastName (A99).
COMPUTE FirstLastName = CONCAT(FName," ", LName").
AGGREGATE OUTFILE= * MODE=ADDVARIABLES /BREAK=UniqueID FirstLastName /Count=N.
AGGREGATE OUTFILE= * MODE=ADDVARIABLES /BREAK=UniqueID  /MaxCount=MAX(Count).
IF (Count<>MaxCount) FirstLastName =$SYSMIS.
AGGREGATE OUTFILE= * MODE=ADDVARIABLES OVERWRITE=YES /BREAK=UniqueID /FirstLastName=MAX(FirstLastName).

然后您也可以覆盖 FNameLName 字段,但是必须做出更多假设,例如,如果 FNameLName 可以包含 space 个字符等

我最终以一种似乎非常复杂的方式解决了所有这些问题。但是,最后,我能够解决所有问题,并且我对最终数据库所做的健全性检查都没有问题。

@Jignesh,我最终使用了您的一些代码。谢谢。