用Stata做多个文件的合并
在我们写论文处理数据时,通常会遇到我们需要的数据从国泰安中下载下来,会因为我们的数据超过excel的最大65536行的行数限制,而被分为两个或几个表,这时,我们需要对表进行纵向的合并,需要用到append命令;当我们需要从国泰安中下载的变量的数据在不同的板块,也就造成数据会出现在不同的表中,这时,我们需要横向合并各个表,当数据不能一一对应时,是不能通过复制粘贴将数据复制到一张表中,这时需要用merge命令。下面通过一些例子进行说明:
1、纵向合并
比如:我们从国泰安中公司研究系列—CSMAR 中国上市公司财务报表数据库—现金流量表中下载2002到2012年的现金流量表,下载下来发现数据因为太多分为了两个表,这时,我们需要纵向合并这两个表,先分别将两个现金流量表读入到Stata中存为.dta文件,再放到同一文件夹中,最后进行合并。如下:set more off
cd C:\Users\Administrator\Desktop\财务数据(国泰安)
use C:\Users\Administrator\Desktop\财务数据(国泰安)\xjllb 改.dta ,clear
#delimit ;
append using
xjllb改1;
sort Stkcd Accper
save xjllb合并,replace
合并结果,如图:
数据超过了65536,数据合并成功。
当需要合并的文件比较多时,特别是成千上百时,将文件名一一复制中程序中会比较麻烦,这时我们要用到logout,先将文件全放在一个文件夹中,再将文件名输出到excel或word中,再将所有文件名复制到程序即可。例子如下:set more off
cd C:\Users\Administrator\Desktop\财务数据\2002-2012
logout,replace save(myfile) excel word :dir
use 2002.dta ,clear
#delimit ;
append using
2003.dta
2004.dta
2005.dta
2006.dta
2007.dta
2008.dta
2009.dta
2010.dta
2011.dta
2012.dta;
save 社保,replace;
logout出的文件名如下:
将文件名复制到程序中即可
2、横向合并
比如:我们需要2002-2012年利润表和资产负债表的数据,先从国泰安中下载2002-2012年利润表和资产负债表的数据,数据也分别在两个表中,先纵向合并,存为lrb合并.dta和zcfzb合并.dta,接下来做横向合并,如下:
use "C:\Users\Administrator\Desktop\财务数据(国泰安)\lrb合并.dta",clear
用sort out
use "C:\Users\Administrator\Desktop\财务数据(国泰安)\zcfzb合并.dta",clear
cd "C:\Users\Administrator\Desktop\财务数据(国泰安)"
merge m:n Stkcd Accper using "C:\Users\Administrator\Desktop\财务数据(国泰安)\lrb合并.dta"
drop _m
sort Stkcd Accper
save 合并数据,replace
匹配结果,如下:
(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。