请大家看这段代码,我很困惑为什么执行的时候并没有按照语句的动作实现结果:问题是,当d1==0时 我确实发现有d3a=.的数据没有被替换为0.但是程序也不报错,说明我的语法上应该没有问题啊~~~~很无奈,很迷茫。。。现在做项目赶时间,我很着急,希望高手指教,拜谢!
我查看过帮助,stata是支持嵌套语句的。。。。迷茫啊
PS:我用STATA/SE11 STATA/SE10,都是这样,应该和版本没太大关系吧
if d1==0{ /*如果d1=0,这个家庭无此项收入*/
gen gardhhdinc=0
}
else{
replace d3a=0 if d3a==. | d3a<0
replace d3b=0 if d3b==. | d3b<0
replace d3c=0 if d3c==. | d3c<0
replace d5=0 if d5==. | d5<0
replace d6=0 if d6==. | d6<0
replace d7=0 if d7==. | d7<0
gen wktime0=d3b*d3c*4*d3a
sort hhid00
by hhid00:egen totlwktime0=sum(wktime0)
if totlwktime0==0{
gen idivgardhhdinc=0
}
else{
gen timeprob0=wktime0/totlwktime0
gen gardhhdinc=(d5-d7)+d6*12
gen idivgardhhdinc=timeprob0*gardhhdinc
}
}