正文
导读:做跨国分析时,世界银行数据库是下载各国经济变量、人口指标等宏观数据的一个重要来源。但是,世界银行数据虽然可以批量下载,但是下载的数据是
EXCEL
或者
CSV
格式,且格式都是横向排列,不符合我们做计量分析的要求。小女子使用世界银行的数据经历了四个主要阶段:第一个阶段使用
excel
,即一个个的下载数据,然后在
excel
中复制、粘贴、转置等,数据处理完后再复制到
stata
,与其它数据匹配,这个阶段全靠勤奋和人缘(找朋友帮忙复制粘贴,哈哈);第二个阶段,依旧先下载,然后使用
stata
清理,借助
reshape
命令,长变宽,宽变长,再
merge
,但是
reshape
一次只能转置一个变量,就需要把所有变量一个一个分开导入到
stata
,加上小循环,还可以提高一点速度,否则此阶段也就是比第一阶段稍微快速加节约体力一点;第三个阶段,借助
wbopendata
,先下载,再
merge
,这个时候就已经大大提速了,但是由于各种未知原因,我一次只能下载几个数据,再
merge
,还是有点点麻烦;第四个阶段,就是刚刚摸索出来的现在,只需要借助
excel
一点点功能,就可以全靠
stata
完成数据的下载,且不需要过多清理,简直完美
!
重点在后面!木有耐心的直接跳到第3个!
现在就来介绍下载世界银行数据的神器——
wbopendata!!!
1.wbopendata
的简单介绍
先下载安装
ssc install wbopendata
,想知道
wbopendata
的基本使用方法,直接
help wbopendata.
下面是命令
wbopendata
的基本语法
wbopendata, Parameters [Options]
Parameters
包括
country()
,
topics ()
和
indicator()
,三个分别是指定需要下载的国家、主题或者具体的指标,其中
country
和
indicator
一次可以指定多个国家和指标,中间用分号隔开,主题一次只能指定一个。注意:
countrycode
、
topic code
和
indicator code
都是世界银行的
code
名称。
[Options]
包括
long,clear,latest,nometadata,year(year1:year2),language
Long
:指定下载数据的类型为长型,默认是宽型
Clear
:清空内存的数据
Latest
:下载更新的数据
nometadata
:
omits the display of metadata
year:
指定下载数据的年份起始点
language
:指定语言,支持英语(
en
)、法语(
fr
)和西班牙语(
es
)
2.examples
下载中国的所有数据
wbopendata,country(chn - China) clear
下载
topic2
的援助效率的数据,语言是英语
wbopendata,language(en - English) topics(2 - Aid Effectiveness) clear
下载
Agricultural machinery
,数据类型长型
wbopendata,language(en - English) indicator(ag.agr.trac.no - Agricultural machinery,tractors) long clear
下载多个国家
wbopendata,country(ago;bdi;chi;dnk;esp) indicator(sp.pop.0610.fe.un) clear
下载多个指标
wbopendata,indicator(si.pov.dday; ny.gdp.pcap.pp.kd) clear long
由于
wbopendata
的国家和指标变量名都是世界银行的固定模式,变量名称很长且比较麻烦,如果一个个的手动输入下载,估计各位看官还不如不使用这个命令。所以,下面就需要一点点小“心机”啦,借助
excel
成功实现“懒式”下载。
3.
批量下载如何做?
首先从世界银行网站(
WDI
网址:
http://databank.shihang.org
(中文版);
http://databank.worldbank.org
(英文版)),随便选择一个国家(如
china
),一个年份(如
2016
),选择你所需要的指标,然后下载下来,保存为世界发展指标
.xlsx
。表格中
sheet2- Definition and Source
会有各个变量名,我们只需导入
sheet2.
打开
stata
,导入
sheet2
cd C:\Stata15\personal
cap mkdir
世界银行
//
新建世界银行文件夹
cd
世界银行
//
下载的文件之后都在此文件夹下
***
划重点!!!!
***心机1:只导入sheet2
。表格中
sheet2- Definition and Source
会有各个变量名,导入后我们会得到indicator code
.
import excelusing C:\Stata15\personal\
世界发展指标
.xlsx, ///sheet("Definitionand Source") first case(lower) clear //
导入数据
**
心机2
:使用一个小循环,让
stata
自行下载每个变量,并分别保存成一个
.dta
文件
levelsofcode,clean local(var) //
将所有变量名
local
在
var
暂元中
foreach x of local var {
wbopendata,indicator("`x'")clear long year(year1960-2016)
save wb`x'.dta,replace
}
这时,我们就将所有数据下载下来了
**
心机
3
:
openall
合并所有
.dta
文件
,
不再使用
merge,但是此举有个小问题,后面(或者下次)再说!!!!
fs wb?*.dta
openall
***
再将不要的单个数据删除
foreach f in`r(files)' {
rm `f'
}
***
心机
4
:批量修改变量名和加标签
这时候就要借助
excel
首先批量加中文标签,先将
sheet1
中的变量和中文名另放一个
sheet
中,使用
lower
函数将大写全部变成小写,再使用替换,将“
.
”换成“
_
”
,
这样可以和
stata
中的变量名称保持一致。
再生成几列
lable var“ ”,
变成最后的样子