####注:以下代码为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=0if(a11==0)//没上过学
replace va11=1if(a11==11)//1年小学
replace va11=2if(a11==12)//2年小学
replace va11=3if(a11==13)//3年小学
replace va11=4if(a11==14)//4年小学
replace va11=5if(a11==15)//5年小学
replace va11=6if(a11==16)//6年小学
replace va11=7if(a11==21)//1年初中
replace va11=8if(a11==22)//2年初中
replace va11=9if(a11==23)//3年初中
replace va11=10if(a11==24)//1年高中
replace va11=11if(a11==25)//2年高中
replace va11=12if(a11==26)//3年高中
replace va11=10if(a11==27)//1年中等技术学校
replace va11=11if(a11==28)//2年中等技术学校
replace va11=12if(a11==29)//3年中等技术学校
replace va11=13if(a11==31)//1年大学
replace va11=14if(a11==32)//2年大学
replace va11=15if(a11==33)//3年大学
replace va11=16if(a11==34)//4年大学
replace va11=17if(a11==35)//5年大学
replace va11=18if(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 //注意:1:1表示按分类变量进行一对一匹配
*通过自动生产的_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