创建虚拟变量的问题

问题描述 投票:0回答:1

.*

ocuSubtraction comes before testing for equality.

You may want treated or 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)`
If
diff stata dummy-variable
1个回答
1
投票

ocu == 1/2/3/6/14我试着制作了以下的假人

occ == 1 | occ == 2 | occ == 3 | occ == 6 | occ == 14 

inlist(occ, 1, 2, 3, 6, 14) 

但他们只是显示为零的所有occ

|治疗区为ID为1、2、3、6、14的五个区。"忒修斯行动 "政策从第80周持续到第85周。 ocu:区ID我试着创建了治疗和时间的假人,但它只是......。/ 是一种合法的表达方式,但很可能离你想要的东西很远。

occ == 1 | 2 | 3 | 6 | 14 

是合法的,长篇大论的,而且

(occ == 1) | 2 | 3 | 6 | 14 

合法的,有可能吸引人的表达方式是:是否。occ 采取任何指定的值?

虽然Stata支持 week==80-85 作为 "或 "操作符(而不是 week 为此)注意到 week == 80-85是合法的,但几乎从来不是任何人想要的,因为它是经过解析的。help operators并将始终被评估为1(true),无论

由于其他参数 2 3 6 14 中只有一个是非零,因此整个表达式的值为 1(真)。

表达式

如果你想让它意味着 week >= 80 & week <= 85 80和85之间。Stata将评估 inrange(week, 80, 85)请参考文献中的优先规则,先应用减法,所以测试与-5相等。

. week所有运算符的运算顺序(从第一到最后)是 !"(或 ~)、^、-(否定)、*、-(减法)、+、 !"(或 ~=)、>、<、<=、>。(或 ~), ^, - (否定), , *, - (减法), +, != (或 ~=), >, <, <=, >=, ==, &, 以及

© www.soinside.com 2019 - 2024. All rights reserved.