多个文件横向合并——mergemany

2017-02-08 强宇曦 爬虫俱乐部 爬虫俱乐部

在之前的推文中,我们介绍过多个文件纵向合并的命令openall,非常方便快捷!而横向合并也有类似的命令,即mergemany。

mergemany

在使用国泰安数据时,我们经常需要对下载好的数据按照证券代码、年份进行合并,一般都要一个一个的使用merge,相对繁琐,而mergemany这个命令则可以一次性横向合并多个文件。mergemany是merge命令的扩展,提供了多种方式将多个指定的数据文件合并。

安装mergemany: ssc install mergemany

方式一:列出全部文件名

语法:mergemany 1:1 filename1 filename2..., match(varlist) [options]

我们以三大报表数据为例进行一对一合并。首先需要用宏扩展函数将下载好的数据从excel转成dta格式文件,之后用openall命令将各报表数据纵向合并(详见之前openall命令推文),接下来就需要用mergemany来横向合并三大表。

clear

set more off

cd "d:\stata\财务报表"


mergemany 1:1 资产负债表 利润表 现金流量表, match(stkcd year)

通过这个简单命令我们一次性合并了三个表,此时,我们变量有239个。

如果想要将合并后的数据保存为新的文件——财务报表,则可以加一个saving(filename)选项。

mergemany 1:1 资产负债表 利润表 现金流量表, match(stkcd year) saving(财务报表)

方式二:合并当前目录下的所有文件

语法:mergemany 1:1 all, match(varlist) all [options]

仍以三大报表为例,合并财务报表目录下的所有文件。

clear

set more off

cd "d:\stata\财务报表"


mergemany 1:1 all, match(stkcd year) all saving(财务报表)

方式三:使用文件名的数字后缀

当文件有相同前缀不同后缀(例如file1,file2,file3 ...)情况下,可以使用数字后缀。在这种情况下后缀将作为参数列出,并且必须指定选项numeric(numlist)。

语法:mergemany 1:1 fileprefix, match(varlist) numerical(numlist) [options]

以auto为例:

clear

set more off

cd "d:\stata"


mkdir auto

cd auto

webuse autosize

save auto1

webuse autoexpense

save auto2

webuse auto

save auto3


mergemany 1:1 auto, match(make) numerical(1(1)3)

mergemany同样适用于一对多,多对一,多对多的情况,更多精彩请help mergemany。


接下来报告空气质量

全国空气质量如下图

比一比,瞧一瞧

河北空气最糟糕

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~,点赞打赏随您心意,么么哒~

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

编辑by徐苾雯



往期推文推荐:

1.合并输出回归结果和其他检验结果——esttab和estadd

2.关于RTF你不知道的命令

3.关于RTF你不知道的命令之番外篇

4.免费事件研究,一片片从邮局寄来

5.免费的股价同步性,一片片从邮局寄来

6.Stata叫你回家听音乐了!

7.一言不合就用stata写邮件(Outlook/Foxmail)

8.玩转stata之调用浏览器

9.I have a Stata, I have a python

10.I have a Stata, I have a Python之二——pdf转word




关于我们

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

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

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

欢迎关注爬虫俱乐部

微信扫一扫
关注该公众号