诸君安!
爬虫君之前给大家讲解过excel文件的读取与保存方法,详见如何用 Stata 批量读取多张工作表的 Excel 文件,其中介绍给大家的命令是import excel,该命令在读取单个文件时表现优异,但要读取多个文件就需要借助宏来进行循环。
今天爬虫君介绍给大家一个更简便的命令xls2dta,本命令需从ssc下载安装,在处理多个excel文件上具有显著优势,不仅可以读取保存,还可以进行合并等其他操作。
Excel文件批量读取与合并
比如,爬虫君现在有4个excel文件放在E:/桌面/mark文件夹中。
每个文件都有3张表单,分别有id和mark两个变量。
爬虫君想要将mark文件夹中所有excel文件中的第1和第3张表单中的数据转换成dta格式,并合并生成mark.dta文件。
使用命令:
xls2dta,save(E:\桌面) sheet(1 3):import excel using E:\桌面\mark,firstrow
xls2dta,save(E:\桌面\mark.dta, replace):append
save中参数表示新生成的文件所在路径,如果不使用该选项则默认为当前工作路径;
sheet中的参数表示所要读取的表单,如果要读取所有表单,则可使用allsheets选项;
E:\桌面\mark则是所要读取的文件的路径,命令会读取该路径中的所有xls和xlsx文件,如果要读取单个Excel文件则需加上扩展名。
第二行命令append默认使用第一行命令所转换生成的文件进行合并。
也可以不生成中间文件直接合并Excel文件中的数据,通过using来自定义所要使用的数据来源。使用命令:
xls2dta, sheet(1 3) save(E:\桌面\mark.dta, replace) importopts(firstrow):append using E:\桌面\mark
这样就直接读取并合并了Excel文件中指定的数据。
通过填写importopts选项可以在细节上完善Excel文件的读取,本次操作填入的firstrow表示将第一行变量记作变量名;
using后接路径,则会对该路径下所有的xls和xlsx文件文件进行操作。如果要对单个文件进行操作,则需加上扩展名。
比如读取mark2.xlsx文件中所有表单的数据并合并,生成文件mark2.dta,使用命令:
xls2dta, save(E:\桌面\mark2.dta,replace) allsheets importopts(firstrow): append using E:\桌面\mark\mark2.xlsx
同样的,append命令还可以换成joinby和merge对excel文件进行合并操作。
新生成文件的其它批量操作
除合并数据之外,xls2dta还可以对新生成的文件进行其他批量操作。语法为
xls2dta : xeq command
比如,对于新生成的文件,爬虫君想要把含4位数的变量id拆成两个分别含2位数的变量,使用命令:
xls2dta,save(E:\桌面) allsheets:import excel using E:\桌面\mark,firstrow
xls2dta : xeq nsplit id,digits(2 2)
如上图所示,变量拆分成功。
只需在xls2dta : xeq后加上命令即可对转换生成的文件进行批量操作,而不加上using或save,本命令会自行读取保存。
怎么样,是不是很便捷?觉得有用就多分享吧~更多精彩,敬请期待。
接下来报告空气质量
全国空气质量如下图
安徽朋友注意一下哦~
以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~,点赞打赏随您心意,么么哒~
应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~
编辑by强宇曦
往期推文推荐:
1.合并输出回归结果和其他检验结果——esttab和estadd
7.一言不合就用stata写邮件(Outlook/Foxmail)
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分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。
欢迎关注爬虫俱乐部
微信扫一扫
关注该公众号