Database 合并部分重复案例而不丢失数据

Database 合并部分重复案例而不丢失数据,database,spss,Database,Spss,我有一个关于为研究准备数据集的问题 我在SPSS 20中有一个长格式的数据集,因为我在个人层面上进行了多年的研究。然而,一些个体被添加到我的数据集中两次,因为与这些个体匹配的一些变量存在差异(5000个个体,每个个体有25个变量)。我想合并这些副本,以便我可以随着时间的推移运行我的分析。对于那些在重复项之间不同的变量,我希望spss在合并所有重复项时生成其他变量 这可能吗?如果可能,怎么做?我建议采取以下步骤> 使用程序数据创建辅助变量“PrimaryLast”->通过…,识别重复案例,将“定义

我有一个关于为研究准备数据集的问题

我在SPSS 20中有一个长格式的数据集,因为我在个人层面上进行了多年的研究。然而,一些个体被添加到我的数据集中两次,因为与这些个体匹配的一些变量存在差异(5000个个体,每个个体有25个变量)。我想合并这些副本,以便我可以随着时间的推移运行我的分析。对于那些在重复项之间不同的变量,我希望spss在合并所有重复项时生成其他变量


这可能吗?如果可能,怎么做?

我建议采取以下步骤>

  • 使用程序数据创建辅助变量“PrimaryLast”->通过…,识别重复案例,将“定义匹配案例依据”设置为您的案例ID

  • 使用数据创建2个新的辅助数据集->选择条件为“PrimaryLast=0”和“PrimaryLast=1”的案例,并选择“将所选案例复制到新数据集”

  • 将两个辅助数据集与过程数据合并->合并文件->添加变量,在左框中重命名重复的变量名称,并在右框中移动它们,然后选择您的案例ID作为键

  • 不要忘记控制是否进行了“完全外部联接”,如果丢失了非重复的事例,并且数据集中只有重复的事例,只需从步骤2合并数据集即可。按照步骤3中的不同顺序

  • 试试这个:

    sort cases by caseID otherVar.
    compute ind=1.
    if $casenum>1 and caseID=lag(caseID) ind=lag(ind)+1.
    casestovars /id=caseID /index=ind.
    
    如果一个
    caseID
    重复了一次以上,那么在重构之后,该案例将只有一行,而所有变量都将使用索引重复。
    如果caseID的顺序重复,则用相应的变量(例如日期)替换sort命令中的
    otherVar
    。这样,您的新变量也将相应地被索引。

    感谢您的快速回答!你说的完全外接是什么意思?对不起,只是一个还在学习spss的学生!在步骤2中。您将创建具有所有ID[PrimaryLast=1]的数据集和具有ID子集[PrimaryLast=0]的数据集,因此必须选择第一个数据集并使用“与第二个数据集合并”。如果选择第二个数据集并将其与第一个数据集连接,您将丢失不在第二个数据集中的案例。我的建议是使用语法-谢谢,现在我有一个长格式文件,其中确实没有丢失信息。但是,我仍然不清楚如何更改变量,然后重新构造为长格式以进行分析。听起来您现在需要的是varstocases,但您应该发布一个新问题,并提供完整的描述,以便获得完整的答案。