merge 1:m id using "using_data.dta" drop _merge save "new_data.dta" ** 匹配结果展示 Result Number of obs --- Not matched 1 from master 1 (_merge==1) from using 0 (_merge==2) Matched 4 (_merge==3) --- /* 匹配结果图示: master_data using_data new_data +---+ +---+ ...
merge命令是 Stata 最常用的命令之一,只要匹配变量在其中一个数据集中能发挥唯一识别的作用 (即合并 1:1、1:m 或 m:1 的情况),merge命令可以正常工作。 然而,当匹配变量在所有数据集中都包含重复项 (不能唯一识别) 时,Stata 会给出一个错误信息,说匹配变量不能唯一识别 master 数据集或 using 数据集中的观测...
因此,如果您手动检查第二个族的结果,您将假定merge m:m完全按照您的要求执行,尽管它对第一个族使用了不同的分配规则 . use parent, clear (Data on Parents) . . merge m:m family_id using child, nogen keep(match) Result# of obs. --- not matched 0 matched 5 --- . sort family_id parent...
例如,我们有两个数据集A和B,它们有一个共同的变量id,我们可以使用以下命令将这两个数据集按照id变量进行一对多合并: merge 1:m id using A 这样,数据集B中的观察单位将按照id变量与数据集A中的观察单位进行匹配,合并成一个新的数据集。如果数据集A中的id变量有重复值,那么数据集B中的观察单位将与数据集A中...
两份数据中 id 名必须不同。如,在上述命令中idmaster(id1)、idusing(id2)分别代表master data中的...
使用命令:merge m:1 id using data2.dta replace id为两个数据源中共有的变量,data2.dta为第二个数据源,replace表示是否覆盖相同的记录。 以上便是stata merge最常见的用法,有可能在实际应用中,会面临更多不同的问题,比如有时候两个数据源中的变量并不完全相同,此时需要根据实际情况设置相应的参数以确保数据的正...
以example2为master dataest,example1为using dataset,可以观察到以id为关键变量进行合并是一个m:1的合并,先看一下默认情况下的合并情况: use example2,clear merge m:1idusing example1list,sepby(id)//在不同的id之间用横线分隔,便于观察 1.png
merge可以进行 1:1 (一对一匹配)、1:m (一对多匹配)、m:1 (多对一匹配)、以及 m:m (多对多) 匹配,但不建议使用 m:m (多对多) 匹配,因为这样容易造成数据的混乱; 在using d2.dta后,可以通过keepusing()指定合并变量。如,可以在后面加上keepusing(weight)来限定只合并变量weight; ...
我们显示按id排序的合并数据集,因为这样可以更容易地查看merge dataset的构造方式。对于 master data 的每个观察值,merge 找到相应的 using data 观察值。merge将 using data 中的变量值与 master data 中的观察值组合在一起。 1:m merges 1:m合并类似于m:1,但现在关键变量识别 master data 中的唯一观察值。可...
缺少必要的关键字或标点符号:在Merge语句中,必须包含关键字MERGE、INTO、USING、ON、WHEN MATCHED或WHEN NOT MATCHED等。如果缺少这些关键字或标点符号,就会导致语法错误。 错误的表名或列名:在Merge语句中,必须指定正确的表名和列名。如果表名或列名拼写错误或不存在,就会导致语法错误。 错误的条件表达式:在Merge语句...