我正在尝试生成一个虚拟变量= 1,如果至少有两个或更多(七个)虚拟变量也= = 1.有人能告诉我一个有效的方法吗?
答案 0 :(得分:1)
让我们假设指标变量关注(你说“虚拟变量”,但这是一个过度使用的术语,因为它的缺点)是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
。缺失在Stata中被视为任意大,当然大于2,这解释了为什么更简单的代码
gen xs = (x1 + x2 + x3 + x4 + x5 + x6 + x7) >= 2
如果有错误,会咬你的。
如果您想要更复杂的规则,您可能会发现自己可以使用egen
个函数rowtotal()
,rowmiss()
等等。请参阅egen
的帮助。