其他
文件合并你不行,mergemany来帮宁
本文作者:崔赵雯,中南财经政法大学金融学院
本文编辑:陈丹慧
技术总编:余术玲
爬虫俱乐部云端课程
一、导论
在Stata中进行数据处理时,经常会涉及到文件的合并。在之前的推文中,我们介绍了多个文件纵向合并的命令——openall,运用起来方便快捷。今天就为大家介绍文件横向合并的命令——mergemany,一起往下看吧~二、mergemany的语法
mergemany是一个可以用于合并多个文件的外部命令,初次使用需要安装,安装命令为:ssc install mergemany
①列出完整文件名进行文件的一对一合并:
mergemany 1:1 filename1 filename2..., match(varlist) [options]
②当前目录下的所有文件进行一对一合并:mergemany 1:1 all, match(varlist) all [options]
③使用文件名的数字后缀进行文件的一对一合并:mergemany 1:1 fileprefix, match(varlist) numerical(numlist) [options]
[options]
选项有:match(varlist)
:合并文件时按此变量进行匹配,这个选项是必须的。numerical(numlist)
:使用文件名的数字后缀进行文件合并时使用。all
:合并当前目录下的所有文件时使用,不能与numerical(numlist)选项一起使用。keep
:保存当前内存中的数据集,同时将当前内存中的所有文件进行合并;在这种情况下,建议使用 saving(filename)选项。saving(filename)
:将合并中生成的文件另存为filename.dta;建议通过keep保存内存中的数据集。verbose
:创建一个变量来标记每个单独合并的合并结果;默认情况下变量为_merge_filename。import(filetype)
:此选项可以直接导入和合并非.dta文件。filetype显示的是正在导入的数据类型(例如.csv,.raw)。使用.dta文件时,不应使用此选项。inoption(options)
:允许在导入数据时指定insheet选项。可以使用insheet中可用的任何选项。只有通过import(filetype)导入时,才使用此选项。三、mergemany的运用
举几个小例子加深理解吧:①列出完整文件名我们经常需要对已经下载好的财务数据按照证券代码和年份进行合并,我们以上市公司的ROA和ROE指标为例进行演示。首先,我们需要将已下载好的excel文件转化为dta格式的文件。
ROE.xlsx数据如下:clear all
import excel using "ROE.xlsx",first //first选项是将表格第一行变为表头
gen year =year(会计年度) //生成新的变量,只保留会计年度中的年份
drop 会计年度
rename 证券代码 stkcd
keep in 1/20 //保留前20行
save "ROE.dta",replace
import excel using "ROA.xlsx", clear first
destring year ROA,replace //将字符型数据转化为数值型数据
keep in 1/20
save "ROA.dta",replace
托宾Q值A.xlsx数据如下:import excel using "托宾Q值A.xlsx", clear first
keep in 1/20
save "托宾Q值A.dta",replace
mergemany 1:1 ROE ROA,match(stkcd year)
②当前目录下的所有文件执行1:1合并
mergemany 1:1 all,match(stkcd year) all
saving(filename)
选项。mergemany 1:1 all,match(stkcd year) all saving(财务数据)
③利用auto文件夹中文件的数字规则性执行1:1合并:
clear all
mkdir auto //创建一个新目录(文件夹)
cd auto //改变工作目录
webuse autosize,clear
save auto1,replace
list
webuse autoexpense,clear
save auto2,replace
list
mergemany 1:1 auto, match(make) numerical(1(1)2)
对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!往期推文推荐
分组进行描述性统计的小技巧 --astx命令介绍
新年快乐|爬虫俱乐部2020年度总结Python中实现Excel的重复值提取fileexists:告诉你“我”存在吗?工作中一切困难的解决途径——motivatedolly
【爬虫实战】喜茶的门店都开在了哪里?
import delimited | 再也不用担心读入网页源代码“乱七芭蕉”了如何简洁地列出指定属性的变量?ds命令来了!
如何在Python中进行描述性统计分析?
分析师和他们的雇主重视与管理层接触吗?——分析师参与盈余电话会议的研究
繁忙的董事与公司业绩:来自并购的证据使用Python接口读取CSMAR数据列表生成式|让你的代码简洁又美观Stata中变量观测值的亲密伙伴——levelsof命令爬虫俱乐部开发的命令更新及常见问题说明
Seminar | 道德培训真的有用吗?
网络爬虫入门之requests 库的基本使用——以亚马逊图书界面为例reduce()函数和filter()函数闪亮登场“环环”入扣之foreach命令关于我们微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
此外,欢迎大家踊跃投稿,介绍一些关于stata和python的数据处理和分析技巧。投稿邮箱:statatraining@163.com投稿要求:1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。