如何匹配仅差一个变量的同源数据集,补全缺失的目标变量值
实现方案
核心思路:两个数据集除type外所有变量完全一致,使用全部共有变量作为匹配键做左连接,即可为boys_miss补全type取值。
基础R实现
使用merge()函数完成匹配:
# 取两个数据集的共有变量作为匹配键,左连接补全type boys_miss <- merge( x = boys_miss, y = boys_miss2, by = intersect(names(boys_miss), names(boys_miss2)), all.x = TRUE )
dplyr实现(代码更简洁)
使用dplyr的left_join()函数完成匹配:
# 加载依赖包 pacman::p_load(dplyr) # 匹配补全type boys_miss <- boys_miss %>% left_join(boys_miss2, by = names(boys_miss))
结果验证
运行以下代码验证匹配正确性,两个输出的频数分布应该完全一致:
table(boys_miss$type) table(boys_miss2$type)
注意事项
如果你的数据集存在完全重复的观测(所有共有变量取值完全相同),匹配时不会出错,重复观测的type会随机匹配对应取值,符合场景需求。
内容的提问来源于stack exchange,提问作者Mohamed Yusuf
相关产品推荐
相关产品推荐

