那些你不知道的merge?

2017-12-07 李丽丹石河子大学 爬虫俱乐部 爬虫俱乐部

12

07

有问题,不要怕!点击推文底部“阅读原文”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~

ps:(1)爬虫俱乐部将于2018年1月20日至28日在武汉举行两期Stata编程技术定制培训。详情请戳爬虫俱乐部Stata编程技术定制培训班——2018年1月武汉专场》

(2)喜大普奔,爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~

今天小编给同学们带来的是老命令,新玩法。我们数据处理时常常用到横向合并merge,相信同学们早已用的“滚瓜烂熟”。在以往推文中,小编们也介绍过关于merge的拓展版《多对多合并》,merge的升级版《多个文件横向合并-mergemany。今天让我们看看merge还有哪些新玩法哦。

首先,我们生成三个数据文件:merge1.dta、merge2.dta和merge3.dta

clear

input str6 name Chinese 

"小米"      .

"阿秋"      22  

"多多"      88  

"小一"      55  

"lili"          99 

end

save merge1, replace

*********************

clear

input str6 name Chinese

"小米"      98  

"阿秋"      .     

"多多"      89  

"小二"      88  

"lili"          99  

end

save merge2, replace

*********************

clear

input str6 name English Math

"小米"      69   89

"阿秋"      89   88

"多多"      70   90

"小二"      76   78

"lili"          98   99

end

save merge3, replace

然后,小编准备通过几个小例子放“大招”了:

01

例子一

use merge2, clear

list   //结果窗口查看数据

use merge1,clear

list   //结果窗口查看数据

merge 1:1 name using merge2  

运行结果中可以看到,当master表与附表中含有相同变量名时(即都含有Chinese变量),合并后相同变量的值不会被using数据中的值覆盖,此时生成_merge有三个变量值分别是1、2、3,其中,1代表仅master表含有,2代表仅using表中含有,3代表master表与using表均有,但using表的数据不会覆盖合并后的数据。

02

例子二

use merge1.dta, clear

merge 1:1 name using merge2.dta,update

运行结果如下:

命令中update代表当master表中的数据中含有缺失值时,合并后using表中的非缺失值将对其进行覆盖更新。此时,我们看到数据窗口_merge的取值是1-5,其中取值1-3意义同上,取值为4说明master表中的缺失值被using表中的非缺失值覆盖,取值为5说明master表与using表中的值均为非缺失值,但是两者有分歧,合并后该值取值选择master表的。

03

例子三

use merge1.dta, clear

merge 1:1 name using merge2.dta ,update replace      //update replace代表当master表中含有缺失值或与using表有冲突的非缺失值时,合并后using表中的数据会对其进行覆盖。

运行结果如下图:

04

例子四

use merge1, clear

merge 1:1 name using merge3, keep(match)  //保留1:1匹配成功的数据

list

通过数据结果我们发现,数据最终仅保留_merge==3,完全匹配上的数据。

05

例子五

use merge1, clear

merge 1:1 name using merge3, keep(match) nogen    //仅有_merge==3且不生成_merge变量

list

至此,已到尾声,小编要谢幕啦。不知小伙伴掌握怎么样,下去多多练习哦。关于merge的更多用法可以help merge继续学习哦。

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

文字编辑/徐露露

技术总编/刘贝贝


往期推文推荐:

1.高校学术大神:你的导师上榜了吗?

2.中国高校财经、管理与综合类期刊灌水排行榜

3.命令sum2docx输出统计量表到docx文件

4.reg2docx报告你的实证结果吧!

5.爬虫俱乐部又出新命令了——wordconvert转换你的word文件

6.putdocx+wordconvert—将实证结果输出到Word.docx)文档

7.Stata 15Markdown——没有做不到,只有想不到!

8.矩阵和宏的故事

9.shelloutopen anything

10.Putpdf--神奇的转换工具



关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部

微信扫一扫
关注该公众号

公开收集正在保存拖拽至此处以完成收集私密