You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stata中实现Data1与Data2的Left join及匹配结果解读求助

在Stata中实现左连接(Left Join)的正确方法

问题分析

你要实现的是左连接:保留主数据集(Data1)的所有记录,同时匹配使用数据集(Data2)中对应ID的所有条目。你之前用的merge m:m是多对多合并,虽然没报错,但不是实现左连接的正确方式,容易混淆匹配结果。

正确操作步骤

  1. 先打开主数据集Data1:
    use "filepath/Data1.dta", clear
    
  2. 执行1:m类型的合并(Data1里每个ID唯一,Data2里同一个ID可能有多条记录,属于1对多关系),并指定保留主数据集的所有记录:
    merge 1:m ID using "filepath/Data2.dta", keep(master match)
    
    • 1:m:明确主数据集(master)的ID是唯一值,使用数据集(using)的ID可以重复
    • keep(master match):保留两类记录:仅在主数据集存在的(master)、两边匹配成功的(match),完全符合左连接的需求

解读合并结果里的_merge变量

合并后Stata会自动生成_merge变量,标记每条记录的匹配状态:

  • _merge=1:仅在Data1中存在的记录(比如你的ID=2),对应Discharge为缺失值.
  • _merge=3:在Data1和Data2中都匹配到的记录(比如你的ID=1和3),对应Data2里的Discharge值

如果不需要这个变量,可以执行:

drop _merge

验证结果

执行完上述命令后,你就能得到预期的数据集:

ID  Hospital    Discharge
1   Hospital A  Y
1   Hospital A  N
2   Hospital B  .
3   Hospital C  Y

内容的提问来源于stack exchange,提问作者Prajwal Mani Pradhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:15:38