stata如何合并数据:两种主流命令实操

stata如何合并数据主要依靠merge和append两条命令,merge用于横向合并,按匹配关键字把不同文件的变量加到同一观测样本,append用于纵向合并,把新观测样本堆叠到原有数据集,merge最常用子类型是1:1、1:m、m:1,匹配关键字必须是字符型或数值型且命名一致,1:1适合两个文件每个关键字只对应一条记录,1:m适合主文件一条记录匹配副文件多条记录,m:1则反过来,m:m匹配稳定性较差,多数实证场景不推荐;该方法适用边界为你已经清理好关键字,关键字无多余空格、无类型冲突,仅做简单数据集拼接,若存在关键字重复、缺失编码混乱的面板数据,需要先做去重和清洗,否则会出现匹配行数错乱。

stata横向合并数据merge操作

横向合并是给原有样本增加新变量,操作顺序固定,你先打开主数据集,也就是保留全部观测的数据集,输入save主数据.dta,replace保存,再用use副数据.dta打开待合并的数据集,确认匹配关键字变量名相同,字符型变量要提前用trim()清除前后空格,再回到主数据集执行merge1:1idusing副数据.dta,id就是匹配关键字。执行完成后,stata会自动生成变量_merge,_merge取值1代表仅主数据存在,2代表仅副数据存在,3代表两边匹配成功,你输入tab_merge查看各类样本数量,匹配失败的样本会直接留在数据里,方便后续排查。

不要直接使用m:m合并,该模式会按观测顺序强行配对,不严格依赖关键字,很容易出现样本错配。

匹配关键字类型不一致是高频问题,主文件id为数值型,副文件id为字符型,即使肉眼内容一样,merge也识别不到匹配关系,你需要用destring或者tostring命令统一变量类型,字符型id还要注意大小写差异,大写和小写字符串会被判定为不同内容。

stata纵向合并数据append操作

纵向合并是追加新的观测行,不新增变量,只增加样本量,执行appendusing待追加数据.dta,两个数据集里同名变量会合并到一列,变量类型必须保持一致,不同名变量会单独保留,缺失值填充到没有该变量的样本行。比如你合并2023年和2024年问卷数据,变量名称、定义完全一致,就适合append。append没有_merge变量,你需要自行生成年份标记变量区分来源样本。

stata合并数据命令对比

命令合并方向匹配要求输出标记变量
merge横向,增加变量必须设置匹配关键字生成_merge
append纵向,增加观测不需要关键字,同名变量合并不自动生成标记

merge操作完成后,你可以输入dropif_merge!=3保留全部匹配成功样本,只保留两边都存在的观测,也可以保留_merge变量,后续筛选部分匹配样本。在国内高校经管类实证论文中,大部分截面数据匹配都采用1:1或者1:m模式,这是经管实证研究里使用最广泛的数据合并范式。

数据合并前,你需要对关键字进行去重检验,duplicatesreportid,查看id是否存在重复记录,1:1合并场景下,主数据集和副数据集都不允许id重复,存在重复id会直接报错或者匹配结果失真。

字符关键字清洗示例代码,tostringid,replace,destringid,replace,trim(id)去掉前后空白,替换原变量,提前完成清洗,能大幅降低匹配失败比例。

临时保存数据集的代码preserve和restore,可在不改动内存当前数据的前提下预览副数据结构,适合快速核对变量名、变量类型,避免反复打开关闭数据集浪费时间。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于stata如何合并数据的文章欢迎访问:百科