美文网首页stata小小白
011 Stata:横向合并

011 Stata:横向合并

作者: 凡有言说 | 来源:发表于2019-07-17 17:20 被阅读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之数据整理

相关文章

  • 011 Stata:横向合并

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

  • A004. 为什么Stata中merge m:m容易出问题

    为什么Stata中merge m:m容易出问题 Stata在数据整理方面的功能很强大,如产生新数据、横向合并数据等...

  • 010 Stata:纵向合并

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

  • Lesson 2 数据集的管理

    Lesson 2 数据集的管理 1 纵向合并与横向合并 纵向合并 s1 s2 s 横向合并 m1 m2 m 延伸:...

  • html表格

    表格 用 添加一个表格 表格合并 横向合并:colspan="2"纵向合并:rowspan="2" 注意把合并掉多...

  • Pandas 合并concat

    concat可以实现横向或纵向合并多个DataFrame concat:上下合并axis=0 左右合并axis=1...

  • table布局方式与div+css布局的区别细讲

    表格布局(table): table表格拆分合并(colspan、rowspan) colspan横向合并表格必须...

  • Pandas 6. 合并 concatenating

    Pandas 6 合并 concatenating 合并两个dataframe,横向纵向均可以 concatena...

  • 3、pandas数据重构

    1、使用concat做数据合并 1.1、横向合并 1.2、纵向合并 2、使用group对数据进行聚合及运算 一图看...

  • pandas 数据合并 concat

    concat 将数据进行轴向横向合并数据,默认是按照index进行组合合并 参数介绍: 例子:

网友评论

    本文标题:011 Stata:横向合并

    本文链接:https://www.haomeiwen.com/subject/cjhclctx.html