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

时间:2015-07-14 02:13:59

标签: spss

我有一个基本格式的5M记录数据集:

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 

DOB始终是唯一的,但我有以下情况: 相同的ID,不同的名称拼写或不同的ID,同名

我让SPSS认识到John Smit和John Smith与同一个DOB是同一个人,我用聚合来显示在名字附近使用拼写的次数(John Smith,10; John Smit 5)。

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

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

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

2 个答案:

答案 0 :(得分:2)

如果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可以包含空格,则必须进行更多假设人物等。

答案 1 :(得分:0)

我最终以一种看似非常复杂的方式解决了所有这些问题。但是,最后,我能够解决所有问题,并且我在最终数据库上做的理智检查都很好。

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