生成分类变量

Generating categorical variable

在我的Stata数据集中,“alternative”变量由4种模式组成,包括码头、私人、海滩和包租。

我想生成新变量 y 如下:

我们将模型分解为三个备选方案并对备选方案进行排序,y = 0 如果从码头或海滩钓鱼,y = 1 如果从私人船上钓鱼,y = 2 如果租船捕鱼。

我试图通过查看此网站中的 thetas 来做到这一点: stata tips但是我解决不了

注意:我从数据集中看不懂。我在生成变量时收到与变量类型相关的错误我从网站下载数据集 https://www.stata-press.com/data/musr/musr.zip 数据名称是 mus15data

数据集中的变量如下:

这里,“模式”变量是备选方案。

如果我没理解错的话,这是

gen y = 0 if inlist(1, dbeach, dpier)
* gen y = 0 if dbeach == 1 | dpier == 1 
replace y = 1 if dprivate == 1 
replace y = 2 if dcharter == 1 

许多其他解决方案也是可能的。再来一张。

gen y = cond(inlist(1, dbeach, pier), 0, 2 * (dcharter == 1) + (dprivate == 1))

如果所有这些变量都只为 0 或 1(并且从不丢失),则可以进行一些简化。

只使用您认为清楚并且可以向其他人解释的代码。

我假设码头、海滩、私人、包机是相互排斥的。我没有检查数据集。