求助:如何实现Dataset2变量对应Dataset1观测的数据集merge操作
在Stata中合并宽格式成员执照数据与长格式成员名册数据
你的核心问题是Dataset2为宽格式数据,无法直接和长格式的Dataset1通过常规merge匹配,需要先将Dataset2转换为长格式,再进行合并。以下是具体操作步骤:
步骤1:将Dataset2从宽格式转长格式
打开Dataset2,使用reshape long命令把按成员编号拆分的列转为行记录:
use "Dataset2.dta", clear // 把member_num_x格式的宽列转成长格式,j()指定生成的成员编号变量名 reshape long member_num_, i(batch_id) j(member_num) // 重命名执照状态变量为目标名称 rename member_num_ License_status // 保存转换后的长格式数据 save "Dataset2_long.dta", replace
步骤2:合并两个长格式数据集
现在Dataset2_long和Dataset1结构完全匹配,直接用merge基于batch_id和member_num两个主键合并:
use "Dataset1.dta", clear // 1:1表示两个数据集里的batch_id+member_num组合都是唯一的 merge 1:1 batch_id member_num using "Dataset2_long.dta" // 若不需要合并匹配标记变量_merge,可执行删除 drop _merge
执行完以上步骤后,得到的数据集就和你想要的Desired Output完全一致:每个成员的batch_id、member_num、occupation和对应的License_status都会正确匹配。
内容的提问来源于stack exchange,提问作者Albert Lutakome
相关产品推荐
相关产品推荐

