诸君安!
爬虫君之前给大家讲解过
excel
文件的读取与保存方法,详见
如何用
Stata
批量读取多张工作表的
Excel
文件
,其中介绍给大家的命令是
import excel
,该命令在读取单个文件时表现优异,但要读取多个文件就需要借助宏来进行循环。
今天爬虫君介绍给大家一个更简便的命令
xls2dta
,本命令需从
ssc
下载安装,在处理多个
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
文件进行合并操作。