有问必答 | 樊纲市场化指数数据处理

2017-03-10 赵一 爬虫俱乐部 爬虫俱乐部

近日,一位朋友发给小编这样一份数据:

大家没有看错,就是最近几年的樊纲市场化指数……但是,这份数据该如何处理呢?如果我们按照基本的方法将该excel文档读入Stata,结果是这样的:

PS:所用代码为

import excel using D:\fgzs2014\fgzs2014.xls,firstrowcase(lower)

显然这样的数据我们无法直接使用,我们期望得到可直接使用的面板数据应该是这样的(以处理好的各省各项“得分”数据为例):

朋友可发了愁,数据处理找爬虫俱乐部,于是,作为朋友小编只能当个免费劳动力了……


首先,读取文档。

clear all

set more off

import excel using"d:\fgzs2014\fgzs2014.xls"  //引号内为文档存放路径

从图中可以看出,我们需要解决的两个问题,一是变量命名,二是第一列的空缺值填充。由于Stata14可以使用中文作为变量名称,我们的思路为把文档拆为“排名”和“得分”两部分,并以第一行的数据作为变量名。所以我们下面需要填补第一行的空缺值,我们编写程序的思路大致为建立变量CBB的循环,设定如果某变量第一行为空值,则用上一变量第一行的值替换空缺值,具体方法如下:

foreach var of varlist C-BB {

  if `var'[1] !=""{

      local before ="`var'"

      continue

     }  //我们在foreach这个循环内嵌套了一个if语句,保存上一变量的名称

  replace`var'=`before' if `var'[1]=="" //识别首行为空值的变量,并用前一变量替换

   }   //补充缺失值

接下来我们可以使用往期推文中介绍的labonenrowcarryforward三个命令简单粗暴的设置变量名、变量标签和填充缺失值,具体如下:

labone,nrow(1 2) //把第一行和第二行变为变量标签

nrow  //第一行设为变量名

drop in 1

carryforward 省份,replace //补充第一列缺失值

destring ,replace float  //转化为数值型

显然直接使用首行命名的缺点就是“排名”和“得分”两部分会冲突,其实我们只要在刚才的循环中顺便保留“排名”或“得分”其中之一就可以,即在循环中加入drop命令就可以实现,完整命令如下:

foreach var of varlist C-BB {

    if `var'[1] !=""{

        local before ="`var'"

        continue

       }  //我们在foreach这个循环内嵌套了一个if语句,保存上一变量的名称

  replace`var'=`before' if `var'[1]=="" //识别首行为空值的变量,并用前一变量替换

  drop`before'  //顺便删除“排名”部分

   }   //补充缺失值

labone,nrow(1 2) //label

nrow //第一行作为变量名

drop in 1

carryforward 省份,replace  //补充缺失值

destring ,replace float  //转化为数值型

drop in -1

save d:\fgzs2014\fgzs2014_score,replace  //保存处理好的“得分”数据 

有兴趣的读者可以自己尝试完成“排名”部分的处理。

本文所用到的原始数据都可以从爬虫数据中心的网站中获取http://richdata.znufe.edu.cn/CommonUseData/Index



以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

文字编辑:张    欢

技术总编:刘贝贝



往期推文推荐:

1.中国高校财经、管理与综合类期刊灌水排行榜

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的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部

微信扫一扫
关注该公众号