文档库 最新最全的文档下载
当前位置:文档库 › 最新用stata做多个文件的合并资料

最新用stata做多个文件的合并资料

最新用stata做多个文件的合并资料
最新用stata做多个文件的合并资料

用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

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

匹配结果,如下:

相关文档