如何在SPSS中合并相同REF编号的多条个案并补全所有变量缺失值
SPSS按参考编号补全缺失值操作指南
错误原因说明
你之前使用数据->合并文件->添加变量的操作不适用当前场景:第二个数据集内同一个REF编号对应多条记录,添加变量的多对一匹配无法自动将多条记录里的非缺失值聚合到同一行,才会出现单REF对应多条记录或者合并无变化的问题。
操作步骤
步骤1:聚合补充数据集
先处理拥有p2、p3有效值的第二个数据集,将其按REF分组,提取每个REF对应的唯一非缺失值:
- 打开第二个数据集,点击
数据->聚合 - 将
REF选入分组依据框 - 将p2、p3选入变量摘要框,点击「函数」按钮,选择
最大值(同一个REF对应的变量只有一个非缺失值,最大值/最小值都可正常提取,自动忽略NA) - 输出选项选择「创建新数据集」,自定义命名为
聚合后补充数据,点击确定。此时新数据集内每个REF仅对应1条记录,p2、p3为你需要的有效值。
步骤2:合并两个数据集
- 打开拥有p1有效值的第一个主数据集,点击
数据->合并文件->添加变量 - 选择已打开的
聚合后补充数据,点击继续 - 将
REF添加到关键变量框,匹配方法选择「基于关键变量的匹配合并」,勾选「非活动数据集为基于关键变量的表」 - 点击确定完成合并,此时合并后的数据集每个REF仅对应1条记录,两个来源的重名变量会被自动添加后缀区分。
步骤3:补全缺失值
用两个来源的变量互相补全缺失:
- 点击
转换->计算变量,目标变量设为p2,数字表达式输入MEAN(p2, p2_1)(MEAN函数会自动忽略缺失值,两个变量中只有一个有值时会直接返回该值) - 重复上述操作补全p3
- 补全完成后删除带后缀的多余变量即可得到目标结果。
可直接运行的SPSS语法
如果你习惯使用语法操作,可以直接运行以下代码,记得提前将主数据集命名为主数据集,补充数据集命名为补充数据集:
* 处理补充数据集,按REF聚合去重. DATASET ACTIVATE 补充数据集. AGGREGATE /OUTFILE=* /BREAK=REF /p2=MAX(p2) /p3=MAX(p3). * 合并到主数据集. DATASET ACTIVATE 主数据集. MATCH FILES /FILE=* /TABLE='补充数据集' /BY REF. EXECUTE. * 清理多余变量得到最终结果. DELETE VARIABLES p2_1 p3_1. EXECUTE.
内容的提问来源于stack exchange,提问作者E_H
相关产品推荐
相关产品推荐

