诸君安!


爬虫君之前给大家讲解过 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

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分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部