【问题标题】:Merging partial duplicate cases without losing data合并部分重复案例而不丢失数据
【发布时间】:2017-06-08 07:22:13
【问题描述】:

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

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

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

【问题讨论】:

    标签: database spss


    【解决方案1】:

    我建议以下步骤>

    1. 使用过程 Data->Identify Duplicate Cases by... 创建辅助变量“PrimaryLast”,将“Define matching cases by”设置为您的案例 ID

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

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

    4. 不要忘记控制是否进行了“完全外连接”,以防丢失非重复案例并且数据集中只有重复案例,只需合并步骤 2 中的数据集。在步骤中以不同的顺序3.

    【讨论】:

    • 感谢您的快速回答!完全外部连接是什么意思?抱歉,只是一个仍在学习 spss 的学生!
    • 在第 2 步中,您将创建具有所有 ID [PrimaryLast = 1] 的数据集和具有 ID 子集 [PrimaryLast = 0] 的数据集,因此您必须选择第一个数据集并使用与第二个数据集的合并。如果您选择第二个数据集并将其与第一个数据集连接,您将丢失不在第二个数据集中的案例。
    【解决方案2】:

    试试这个:

    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 的顺序重复,请将排序命令中的otherVar 替换为相应的变量(例如日期)。这样,您的新变量也会被相应地编入索引。

    【讨论】:

    • 谢谢你现在我有一个长格式的文件,我确实没有丢失信息。但是,我仍然不清楚如何更改变量,然后重组回长格式来进行分析
    • 听起来您现在需要的是 varstocases,但您应该发布一个带有完整描述的新问题,以便获得完整的答案。
    猜你喜欢
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 2017-06-18
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    相关资源
    最近更新 更多