之前发文介绍了《如何把国家统计局地区分省年度数据快速整理成省级面板数据》。虽然能实现快速把国家统计局地区分省年度数据快速整理成省级面板数据,但是实际操作中仍然需要修改一些指令。下面的代码能够一键实现把国家统计局地区分省年度数据快速整理成省级面板数据。
进入国家统计局→统计数据(数据从查询)→地区数据(分省年度数据)下载分省数据到文件夹。
运行一下以下代码能:
cd D:\科研数据\统计局数据\新建文件夹 //数据所在文件夹
local files: dir "." files "*.xls",respectcase
local f =1
foreach t in `files' {
local b = subinstr("`t'",".xls","",.)
import excel using "`t'", clear
local i = substr(A[2],10,.)
drop A
ds
foreach j in `r(varlist)'{
replace `j'="a`f'"+substr(`j',1,4) in 4
}
foreach l in `r(varlist)'{
local k =`l'[4]
rename `l' `k'
}
keep in 5/35
gen id = _n
reshape long a`f', i(id) j(year)
label variable a`f' `"`i'"'
destring a`f',replace
save "`b'", replace
local f=`f'+1
}
*合并数据
local files: dir "." files "*.dta",respectcase
dis `files'
foreach j in `files' {
cap merge 1:1 id year using "`j'"
cap drop _merge
}
gen 省份=""
replace 省份 = "北京市" if id==1
replace 省份 = "天津市" if id==2
replace 省份 = "河北省" if id==3
replace 省份 = "山西省" if id==4
replace 省份 = "内蒙古自治区" if id==5
replace 省份 = "辽宁省" if id==6
replace 省份 = "吉林省" if id==7
replace 省份 = "黑龙江省" if id==8
replace 省份 = "上海市" if id==9
replace 省份 = "江苏省" if id==10
replace 省份 = "浙江省" if id==11
replace 省份 = "安徽省" if id==12
replace 省份 = "福建省" if id==13
replace 省份 = "江西省" if id==14
replace 省份 = "山东省" if id==15
replace 省份 = "河南省" if id==16
replace 省份 = "湖北省" if id==17
replace 省份 = "湖南省" if id==18
replace 省份 = "广东省" if id==19
replace 省份 = "广西壮族自治区" if id==20
replace 省份 = "海南省" if id==21
replace 省份 = "重庆市" if id==22
replace 省份 = "四川省" if id==23
replace 省份 = "贵州省" if id==24
replace 省份 = "云南省" if id==25
replace 省份 = "西藏自治区" if id==26
replace 省份 = "陕西省" if id==27
replace 省份 = "甘肃省" if id==28
replace 省份 = "青海省" if id==29
replace 省份 = "宁夏回族自治区" if id==30
replace 省份 = "新疆维吾尔自治区" if id==31
order 省份 id year
*删除单变量数据
foreach j in `files' {
erase "`j'"
}
一键实现16个省级宏观指标的面板数据。