(1)生成虚拟变量
使用tab+gen
使用数据panel.dta
tab id,gen(idd)
gen+replace组合
gen ii=0 //产生一个值全部为的变量
replace ii=1 if id>10 //将id大于10的ii的观测值赋值为1
replace ii=2 if y2 //将y小于5且大于2的观测值定义为2
gen newvar=(varname>#)
意思是:满足>#的varnmae的值被定义为1,否则定义为;
gen y0=(y
gen y1=(y2) //y小于5且大于2个体定义为1,其余的定义为
注意:
如果数据中存在缺失值,缺失值将被归入不满足定义等号后的表达式的情况,因而进入各个虚拟变量中取值为的组;
autocode()+recode()
autocode(x,n,x0,x1) //函数recode()的自动版本;将从x0到x1的区间划分为n个等长区间(变量取值区间宽度相等),并求出各个x所在区间的上限;
recode(x,x1,x2,...,xn) //当x缺失时求得x,当x
使用上面数据panel,将y分成取值间隔相等的5组
geny5=autocode(id,5,1,30) //y5是新生成的变量,id是目标变量,5是分为5组,1是最小值,30是最大值
. use "G:\计量经济学资料\计量经济学资料\计量经济学:零基础到精通\计量经济学与Stata操作:入门到精通\wage.dta",clear
.gen tenure1=autocode(tenure,3,1,10)
. tab tenure1
将工作任期分为3组,分别是1-4年,5-7年,8-10年等3中情况;
.gen tenure2=recode(tenure,3,2,7,10) //分为4组,第一组的上限是2,第二组的上限是7,第三组的上限是10
.gen tenure3=recode(tenure,2,7,10) //分为3组,第一组的上限是2,第二组的上限是7,第三组上限是10
领取专属 10元无门槛券
私享最新 技术干货