1. 建立新变量
gen z=x*y
2. addition to typing variable names from your data, you can type factor variables, which might look like
i.varname i.varname#i.varname i.varname#i.varname#i.varname i.varname##i.varname i.varname##i.varname##i.varname
Operator Description
i. unary operator to specify indicators c. unary operator to treat as continuous # binary operator to specify interactions ## binary operator to specify factorial interactions
3. Here are some examples of use of the operators:
Factor
specification Result
-------------------------------------------------------------------------------------------------------------
i.group indicators for levels of group
i.group#i.sex indicators for each combination of levels of group and sex, a two-way interaction
group#sex same as i.group#i.sex
group#sex#arm indicators for each combination of levels of group, sex, and arm, a three-way interaction
group##sex same as i.group i.sex group#sex
group##sex##arm same as i.group i.sex i.arm group#sex group#arm sex#arm group#sex#arm
sex#c.age two variables -- age for males and 0 elsewhere, and age for females and 0 elsewhere; if age
is also in the model, one of the two virtual variables will be treated as a base
sex##c.age same as i.sex age sex#c.age
c.age same as age
c.age#c.age age squared
c.age#c.age#c.age age cubed
-------------------------------------------------------------------------------------------------------------
Base levels
You can specify the base level of a factor variable by using the ib. operator. The syntax is
Base
operator(*) Description
-----------------------------------------------------------------------------------------------------------
ib#. use # as base, #=value of variable
ib(##). use the #th ordered value as base (**)
ib(first). use smallest value as base (the default)
ib(last). use largest value as base
ib(freq). use most frequent value as base
ibn. no base level
-----------------------------------------------------------------------------------------------------------
(*) The i may be omitted. For instance, you may type ib2.group or b2.group.
(**) For example, ib(#2). means to use the second value as the base.
If you want to use group==3 as the base in a regression, you can type,
. regress y i.sex ib3.group
You can also permanently set the base levels of categorical variables by using the fvset command.