治疗自治市镇是ID分别为1、2、3、6、14的五个自治市镇。“ These修斯行动”政策的执行期限为80周至85周。
ocu
:自治市镇ID
我尝试创建treated
和time
的虚拟变量,但它们对所有人都显示为零
gen treated =0 if missing(ocu)==0
replace treated =1 if ocu==1/2/3/6/14
gen time = (week==80-85) & !missing(week)`
答案 0 :(得分:1)
ocu == 1/2/3/6/14
是一个合法的表达方式,但距离您想要的还有很长的路要走。
occ == 1 | occ == 2 | occ == 3 | occ == 6 | occ == 14
是合法的且long之以鼻的
inlist(occ, 1, 2, 3, 6, 14)
合法并且可能会吸引人:occ
是否采用了指定的任何值?
尽管Stata支持|
作为“或”运算符(而不是/
),请注意
occ == 1 | 2 | 3 | 6 | 14
是合法的,但绝不会像解析后的任何人所希望的那样
(occ == 1) | 2 | 3 | 6 | 14
,并且无论occ
的值如何,始终将其赋值为1(真),因为其他参数2 3 6 14中只有一个非零表示整个表达式的赋值为1(真) 。
如果表达式week==80-85
的意思是week
在80到85之间,则语法也是不正确的。Stata将求值week == 80-85
,首先应用减法,然后使用- 5,请参阅help operators
中记录的优先级规则。
所有运算符的评估顺序(从头到尾)为! (或〜),^,-(否定),/,*,-(减法),+,!=(或〜=),>,<,<=,> =,==,&和|。*
在进行相等性测试之前先减去。
您可能需要week >= 80 & week <= 85
或inrange(week, 80, 85)
。
如果week
在80到85之间,则不能丢失它。该测试是多余的(但无害)。