工企数据问题很多,处理起来比较繁琐,最近又搞了一次,一边整理一边发现问题,一步一步完善,两天也就做了两个年度的,希望是已经把所有的问题都遇到了,之后会顺畅些。
主要工作是
清洗数据和
匹配城市行业,以及
用类似excel数据透视表的功能加总到城市和行业。
以下是总结,不一定完全合理,也没有完全按照聂辉华老师文章那样处理得很精确,不过也参考了一些比较权威期刊发表的文章,仅供参考。个人水平有限,有问题的话欢迎指正,若有其他解决方案也恳请赐教,共同进步。
一、导入数据到stata
从access格式导入stata,有帖子介绍过具体操作,参考:
https://bbs.pinggu.org/thread-3231726-1-1.html
https://bbs.pinggu.org/forum.php ... =#pid62774762Access
亲测无误
tips:命令中的("1999") 是在那个exe里命名的名称,("qy99") 是access打开以后左边框里的名称而不是access外面文件名的名称,要打开文件看看,确认一下
二、初步清洗数据
(一)指定目标路径
正式开始前可以先指定目标路径,也就是通过运行程序产生的文件放在哪里以及调用的文件放在哪里,命令如下:
tips:cd 后边跟路径,不一定必须加英文的双引号,有时候不加双引号也可以,不过加了保险些。路径可以打开文件夹右键看属性,然后复制过来。
(二)打开do文件记录命令
打开do文件记录命令也是一个不错的习惯,do文件写得差不多以后,可以从头再运行一遍,记录下结果,这时候可以用log的命令:
结束时用:
tips:log会产生记录的文件,记录下命令和结果,可以设置产生的文件格式,可以是txt文本也可以是网页,每一步都会被记录下来,所以感觉把do文件尝试得差不多了以后,最后再运行一遍,再记录,结果里面不会有太多有问题的步骤。以及每一次记录如果写同样的文件名,就会被代替,不过如果不加replace的option就打不开,所以每次命名要注意区分。
(三)筛选数据
下面正式开始筛选数据,相关标准很多,很多文章有介绍,被引最多的是(Brandt,2012;聂辉华,2012)这两篇,我在另一个帖子里有发过论文原文,参考:
https://bbs.pinggu.org/thread-7387896-1-1.html
我这里只根据需要进行了几个关键变量的筛选,命令如下:
tips:1.工企数据中每年的变量名称会有不同,比如工业总产值有的后面还有括号,所以很难批量循环处理,需要一个一个变量自己辨别,命令相应要修改。比如同样是工业总产值不变价,有的年份叫“工业总产值(不变价、新规定)”(1998、1999)有的年份叫“工业产值固”(2000),也有的叫“工业产值不”(2001);比如同样是港澳台资本金(1998、1999),2000年命名是“港澳台资本”,2001年甚至有错别字叫“港奥台资本”真的是醉醉的,要每年挨个儿对着选变量。2.关于标准,职工大于等于30是有在论文里看到,用来筛选规模以上企业,所以没有用大于等于8。3.注意,drop只能删掉小于的,删不掉空缺值,所以用keep if更方便,省得专门再删一次空缺值。
(四)删除无关变量
因为工企数据库里面的变量特别多,数据量也很多,动辄几十万,所以没用的变量建议删掉,或者直接只保留需要的变量,命令如下:
(五)适时保存数据
记得适时保存数据,但不要时时保存,因为stata不像excel可以随时Ctrl+Z,stata里面错一步就要重新来,所以小心了。
三、匹配城市
(一)重命名加标签
因为工企数据库里变量名称是汉字,在stata里虽然能导入,但是不便于进行后续的运算,所以还是把涉及运算的变量改名字,顺便label标记备注一下,要不改到最后都乱了。这里列几个关键变量,一是便于后续理解,二是给个示范。
(二)统一匹配变量的格式
用来匹配的变量格式和名称应该是相同的,比如我这里用行政区划匹配城市名称,行政区划的变量在匹配的文件和被匹配的文件里应该有相同的命名,我这里是xzdaima1,也有相同格式,即数字型。
我只用地级市数据,所以只取原来字符串型数据xingzhengdaima 的前四位,新变量命名为xzdaima,又因为在另一个文件里行政代码的变量为数字型, 所以这里将字符串型数据转为数字型,然后命名为xzdaima1,和匹配过来的那个文件里的变量名以及数据类型一致。
tips:之所以不用数据库里的城市是因为有些年份压根没有登记城市,或者登记的名称都不统一,有的有“市”有的没有“市”甚至有的名字错误,所以用匹配相对好些,但是也有问题,就是行政区划代码每年多少有变动,如果不统一对应到一个固定的对照表的话,就会有很多匹配不上的。这个行政代码和城市名称的对应表就要自己做了,如果用县级数据或是地级市数据,在研究年份中有行政级别调整的城市就可以剔除了,比如从县级市到地级市的。关于撤县建市等行政区划调整问题可以参考:
https://bbs.pinggu.org/thread-7801095-1-1.html
(三)匹配城市
然后是关键一步,用merge命令合并,这里是m:1,多对一,因为企业很多,但城市就那么几百个。关于匹配就不多说了,网上有很多资源可以学习。
tips:这个行政区划代码匹配表没有太合适的,自己做也还是有点瑕疵,不够合理,这里就不分享了。
(四)删除没匹配上的企业tips:因为这个匹配表还是有些问题,如果不对每年的数据分别做一个对照表,也很难完全匹配上,所以其实删一些也没关系,删个一万多条数据都OK,毕竟占比很少。
四、匹配行业
和匹配城市一样,行业也有很多标准,有几版,所以行业代码也有所不同,需要对应,这个对应也得自己做。步骤和上一步差不多。
(一)重命名(二)统一匹配变量的格式(三)匹配行业(四)删除没匹配上的企业(五)适时保存数据待续