|
我也是才开始学习stata的,我们老师教我们的时候自己不需要写论文,上课都玩手机去了,等到自己正真要写论文的时候才傻眼了,啥都不会,唯一学会的东西就是 ta 命令,后面自己在论坛上面找了一些讲义学习,每天来人大论坛签到,到stata板块看看帖子
我这里分享一下虚拟变量的产生命令:
基于内别变量产生虚拟变量:
sysuse nlsw88.dta, clear
tab race, gen(dum_r)
或者 xi i.race
其实比较笨拙的方法可以用 gene, replace if 语句
把连续变量转换为虚拟变量:group,recode,cond,inlist,inrange
sysuse nlsw88.dta, clear
sort wage
gen g_wage = group(5)
sum age
recode age (min/39 = 1) (39/42 = 2) (42/max = 3), gen(g_age)
* 1 if age<=39
* 2 if 39<age<=42
* 3 if age>42
sysuse nlsw88, clear
gen dum1 = cond(hours>40, 1, 0, .)
* 1 if 为真;
* 0 if 为假;
* . if 表达式 s 为缺漏值
gen dum_occu = inlist(occu, 1,2,7,12)
* 1 if x = 1,2,7,...中的任何一个
* 0 otherwise
sysuse nlsw88, clear
gen dum_h2 = inrange(hours, 10,40)
* 1 if 10<= x <= 40;
* 0 otherwise
|