查看原文
其他

世界银行数据批量下载,暗含小心机呦!

编辑:计量经济圈 计量经济圈 2019-06-30


欢迎投稿计量经济圈,计量相关都行

邮箱:econometrics666@sina.cn

编辑:计量经济圈


导读:做跨国分析时,世界银行数据库是下载各国经济变量、人口指标等宏观数据的一个重要来源。但是,世界银行数据虽然可以批量下载,但是下载的数据是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(),三个分别是指定需要下载的国家、主题或者具体的指标,其中countryindicator一次可以指定多个国家和指标,中间用分号隔开,主题一次只能指定一个。注意:countrycodetopic codeindicator code都是世界银行的code名称。

[Options]包括long,clear,latest,nometadata,year(year1:year2),language

Long:指定下载数据的类型为长型,默认是宽型

Clear:清空内存的数据

Latest:下载更新的数据

nometadataomits 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) //将所有变量名localvar暂元中

  foreach x of local var {

     wbopendata,indicator("`x'")clear long year(year1960-2016)

        save wb`x'.dta,replace

     }

这时,我们就将所有数据下载下来了


**心机3openall合并所有.dta文件,不再使用merge,但是此举有个小问题,后面(或者下次)再说!!!!

fs wb?*.dta

openall

***再将不要的单个数据删除

foreach f in`r(files)' {

           rm `f'

    }


***心机4:批量修改变量名和加标签

这时候就要借助excel

首先批量加中文标签,先将sheet1中的变量和中文名另放一个sheet中,使用lower函数将大写全部变成小写,再使用替换,将“.”换成“_,这样可以和stata中的变量名称保持一致。



再生成几列lable var“ ”,变成最后的样子



复制粘贴到do文件中,这是do文件中中文名前后会有空格,我们使用快捷键ctrl+C+H将空格替换



然后就可以美美的执行了!左图是执行前,右图是执行后!


 

 最后按照相同的套路,先在excel中修改变量名,再复制粘贴到do文档中执行就可以了!左边是excel,右边是do文档执行后的结果!




 save wdi.dta,replace

大功告成!剩下的就是数据清理了!drop,keep,reshape…


https://v.qq.com/txp/iframe/player.html?vid=r0547m1f8fx&width=500&height=375&auto=0


写在后面:各位圈友,咱们的计量经济圈社群里面资料和计量咨询都很多,希望大家能够积极加入咱们这个大家庭戳这里)。之后我们会逐步邀请社群里的圈友再直接建立微信群与圈圈对话,进去之后一定要看“群公告”,不然接收不了群息。


亚洲大学排行榜泰晤士时报2018

提议

欢迎各位投稿给计量经济圈,各种文献笔记、计量技巧和最新发现都可以实名在这里发出来,让你在这个圈子积累声誉和将来的合作文章合作机会。



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存