如果 Stata 中至少有两个虚拟变量 == 1,如何生成变量 = 1?

how to gen variable = 1 if at least two dummy variables == 1 in Stata?

如果至少有两个或更多(七个中的)虚拟变量也 == 1,我正在尝试生成一个虚拟变量 = 1。有人能告诉我一个有效的方法吗?

让我们假设相关的 指标变量 (你说 "dummy variables",但考虑到它的缺点,这是一个过度使用的术语)是 x1 .. .x7。根据该定义,它们的值被认为是 1 或 0,除了值也可能缺失。那么你想要的总结逻辑就是

gen xs = (x1 + x2 + x3 + x4 + x5 + x6 + x7) >= 2 if (x1 + x2 + x3 + x4 + x5 + x6 + x7) < . 

输入并不太难,只要复制和粘贴即可复制总和的语法。 if 限定符将任何指标上的任何观察值与缺失值分开,缺失值将为新变量返回。此类观察结果将被报告为总共 x1 + x2 + x3 + x4 + x5 + x6 + x7 缺失。 Missing 在 Stata 中被视为任意大,并且肯定大于 2,这解释了为什么更简单的代码

gen xs = (x1 + x2 + x3 + x4 + x5 + x6 + x7) >= 2 

如果有缺失会咬你。

如果您想要更复杂的规则,您可能会发现自己需要使用 egen 函数 rowtotal()rowmiss() 等等。请参阅 egen 的帮助。