stata实战班:数据处理回顾&stata操作实战(3)

数据处理回顾&stata操作实战

数据处理回顾

####注:以下代码为stata指令
************************************************************************************************
*** DATE:         Oct. 25, 2020
*** AUTHORS:      Zhou Qiang & Miao Shuangyou
*** THIS PROGRAM: merge命令与作业处理
************************************************************************************************

clear

cd "D:\Mydatafile\000sat"      //设置默认路径:打开数据前,需要定位数据文件的位置
dir                               //了解当前路径下有哪些文件

**********************************************************
************以第一组作业为例:分析户主受教育年限分布 *****
**********************************************************

use educ_12.dta,clear

*第一种情况:如果分析户主受教育年限,那么需要选择a11变量
*此时,需要将a11变量值按照“小学6年”、“初中三年”……等进行转化

tab a11        //查看变量情况

gen va11=0
replace va11=0 if (a11==0)    //没上过学
replace va11=1 if (a11==11)    //1年小学
replace va11=2 if (a11==12)    //2年小学
replace va11=3 if (a11==13)    //3年小学
replace va11=4 if (a11==14)    //4年小学
replace va11=5 if (a11==15)    //5年小学
replace va11=6 if (a11==16)    //6年小学
replace va11=7 if (a11==21)    //1年初中
replace va11=8 if (a11==22)    //2年初中
replace va11=9 if (a11==23)    //3年初中
replace va11=10 if (a11==24)    //1年高中
replace va11=11 if (a11==25)    //2年高中
replace va11=12 if (a11==26)    //3年高中
replace va11=10 if (a11==27)    //1年中等技术学校
replace va11=11 if (a11==28)    //2年中等技术学校
replace va11=12 if (a11==29)    //3年中等技术学校
replace va11=13 if (a11==31)    //1年大学
replace va11=14 if (a11==32)    //2年大学
replace va11=15 if (a11==33)    //3年大学
replace va11=16 if (a11==34)    //4年大学
replace va11=17 if (a11==35)    //5年大学
replace va11=18 if (a11==36)    //6年大学或更多,即研究生以上情况

replace va11=. if (a11==-9)   //将异常值作为初始值处理
replace va11=. if (a11==.)   //处理原始变量中的缺失值

label var va11 "接受正规教育年限(年)"

save,replace 

bys idind wave: gen n=_n       //匹配前,检查主要变量分类是否唯一
tab n    //主要分类变量唯一,可进行匹配
drop n

sort idind wave     //匹配前,对主要分类变量进行排序
save,replace        //将该文件视为using子文件


***打开主文件
clear
use rst_12.dta,clear          //打开master主文件

tab a5    //查看变量情况,是否存在异常值
bys idind wave: gen n=_n       //匹配前,检查主要变量分类是否唯一
tab n    //主要分类变量唯一,可进行匹配
drop n

sort idind wave     //匹配前,对主要分类变量进行排序

merge 1:1 idind wave using educ_12.dta     //注意:11表示按分类变量进行一对一匹配
*通过自动生产的_merge变量,查看匹配结果,仅保留匹配成功的个体

keep if (_merge==3)   //仅保留匹配成功的个体

tab _merge      //查看是否仅保留匹配成功的个体
drop _merge     //无误情况下,删除_merge变量


******************************************************
*******按年度完成户主受教育程度描述性统计*************
******************************************************

tab wave va11 if (a5==0)        //分年度,仅统计户主受教育程度
tab wave va11 if (a5==1)        //分年度,仅统计户主配偶受教育程度

*第二种情况:如果分析户主最高受教育程度,需要采用a12变量
*处理过程更简单,变量清洁思路与前面基本一致

***end

stata操作实战

####注:以下代码为stata指令
************************************************************************************************
*** DATE:         Oct. 25, 2020
*** AUTHORS:      Zhou Qiang & Miao Shuangyou
*** THIS PROGRAM: 关税处理
************************************************************************************************
clear

cd "C:\Users\ShuangYou\Desktop\WTO_Tariff Download Facility"

**** 导入关税数据,转换成dta格式

** 1996_1997_2001
import excel tariff_1996_1997_2001.xls, clear
* 挑选变量
keep B C D E I
* 
drop if _n<=5
* 修改变量名
rename B year
label var year "年份"
rename C HS_level
rename D HS_version
rename E HS
rename I Tariff
keep if HS_level=="6"
save tariff_1996_1997_2001.dta,replace

** 2002
insheet using tariff_2002-2006.csv, clear
* 挑选变量
keep v2 v3 v4 v5 v9
* 
drop if _n<=5
* 修改变量名
rename v2 year
label var year "年份"
rename v3 HS_level
rename v4 HS_version
rename v5 HS
rename v9 Tariff
keep if HS_level=="6"
save tariff_2002-2006.dta,replace


import excel HS2002_HS1996.xls, clear firstrow
rename HS2002 HS
sort HS
drop if Relationship=="'n:n"
save HS2002_HS1996.dta,replace


use tariff_2002-2006.dta,clear
sort HS
merge m:m HS using HS2002_HS1996.dta
keep if _merge==3
drop HS ex Relationship _merge
rename HS1996 HS
save tariff_2002-2006.dta,replace


use tariff_1996_1997_2001.dta,clear
append using  tariff_2002-2006.dta
save tariff.dta,replace
#### my notes
#### 注:以下代码为stata指令
************************************************************************************************
*** DATE:         Oct. 25, 2020
*** AUTHORS:      Zhou Qiang & Miao Shuangyou
*** THIS PROGRAM: 关税数据处理
************************************************************************************************
clear

cd "F:\StataCode\zhouqiang2020_20_24"      //设置默认路径:打开数据前,需要定位数据文件的位置
dir                               //了解当前路径下有哪些文件

**** 导入关税数据,转化成dta格式
import excel tariff_1996_1997_2001.xls ,clear

**挑选变量
keep B C D E I

drop if _n <= 5

** 修改变量名
rename B year 
label var year "年份"
rename C HS_level
rename D HS_version
rename E HS
rename I Tariff

keep if HS_level == "6"

save revised_tariff_1996_1997_2001.dta ,replace

** 2002
insheet using tariff_2002-2006.csv ,clear

**挑选变量
keep v2 v3 v4 v5 v9

drop if _n <= 5

** 修改变量名
rename v2 year 
label var year "年份"
rename v3 HS_level
rename v4 HS_version
rename v5 HS
rename v9 Tariff

keep if HS_level == "6"

save revised_tariff_2002-2006.dta ,replace


import excel "HS2002 to HS1996 - Correlation and conversion tables.xls" ,clear firstrow
rename HS2002 HS
sort HS
drop if Relationship == "'n:n"
save HS2020_to_HS1996.dta ,replace



use revised_tariff_2002-2006.dta ,clear
sort HS
merge m:m HS using HS2020_to_HS1996.dta

keep if _merge == 3
drop HS ex Relationship _merge
rename HS1996 HS
save revised_2_tariff_2002-2006.dta ,replace


use revised_tariff_1996_1997_2001.dta , clear
append using revised_2_tariff_2002-2006.dta
save tariff_sum.dta,replace
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值