stata小小白

011 Stata:横向合并

2019-07-17  本文已影响6人  凡有言说

Stata的合并有两类:一类是纵向合并,另外一类是横向合并。本篇介绍横向合并的几种方法。

1.一对一合并

merge 1:1 varlist using filename [, options]

*示例1
webuse autoexpense, clear
save temp1, replace

webuse autosize, clear
save temp2, replace

use temp1, clear
merge 1:1 make using temp2 //按照变量make对两个文件横向合并

*示例2
clear
cd "C:\Users\Van\Desktop\download\data analysis"

use 资产负债表, clear
merge 1:1 stkcd year using 利润表
keep if _merge == 3  //保留匹配成功的样本
drop _merge 

2.一对多合并

merge 1:m varlist using filename [, options]

*示例1
webuse dollars, clear
save temp3, replace

webuse sforce, clear
save temp4, replace

use temp3, clear
merge 1:m region using temp4 //多对一合并(先导入一一对应关系的数据,后导入多对应关系的数据)

*示例2
use 行业分类, clear
merge 1:m stkcd using 财务报表
keep if _merge == 3

3.多对一合并

merge m:1 varlist using filename [, options]

*示例1
webuse dollars, clear
save temp3, replace

webuse sforce, clear
save temp4, replace

use temp4, clear
merge m:1 region using temp3 //多对一合并(先导入多对应关系的数据,后导入一一对应关系的数据)

*示例2
use 财务报表, clear
merge m:1 stkcd using 行业分类
keep if _merge == 3

4.多对多合并

merge m:m varlist using filename [, options]

*示例
clear
input id str3 v1
1 "a"
1 "b"
1 "c"
2 "d"
2 "e"
end
save 1.dta, replace

clear
input id str3 v2
1 "f"
1 "g"
2 "h"
2 "i"
2 "j"
end
save 2.dta, replace

use 1.dta, clear
merge m:m id using 2.dta
drop _merge
m:m

但这种合并结果并非我们通常想要的,此时需要用组内交叉合并(joinnby)

joinby [varlist] using filename [, options]

*示例1
use 1.dta, clear
joinby id using 2.dta
sort id v1 v2 

其结果如图所示

joinby
*示例2
clear
set more off
input stkcd str15 date
000001 "2006-03-01"
000001 "2007-06-05"
000001 "2007-05-05"
000001 "2010-03-01"
000001 "2013-05-06"
000002 "2003-07-25"
000002 "2009-08-16"
000002 "2010-05-09"
end
save 事件列表,replace

use 事件列表, clear
joinby stkcd using 停复牌
gen date1 = date(date,"YMD") //将原来日期改为数值格式,便于后面比较
gen num = 1 if date1 >= startdate & date1 <= enddate
keep if num == 1 //保留属于停牌期间的
merge 1:1 stkcd date using 事件列表
keep if _merge == 2 //保留匹配不成功的,即不属于停牌期间的
keep stkcd date

以上只是两个文件合并,如果想合并多个文件可以用外部命令mergemany,详见
204 Stata命令:mergemany

参考资料:
【爬虫俱乐部】精通Stata之数据整理

上一篇 下一篇

猜你喜欢

热点阅读