【发布时间】:2019-02-23 13:44:40
【问题描述】:
我想在Stata中新建一个变量,即3不同变量的函数,X,Y和Z,比如:
gen new_var = (((X)*3) + ((Y)*2) + ((Z)*4))/7
所有观测值中的一个或两个变量都有缺失值。
当我运行上述命令时,它生成的只是缺失值,因为没有观察值具有变量的所有 3 的值。我希望 Stata 完成忽略缺失变量的函数。
我尝试了以下命令但没有成功:
gen new_var= (cond(missing(X*3),., X) + cond(missing(Y*2),., Y))/7
gen new_var= (!missing(X*3+Y*2+Z*4)/7)
gen new_var= (max(X , Y, Z)/7) if missing(X , Y, Z)
egen 命令不允许复杂的功能;否则rowtotal() 可以工作。
编辑:
为了澄清,“忽略缺失的变量”意味着即使没有缺失任何一个组件变量,然后将函数仅应用于该变量并为新变量生成一个值。仅当所有三个组件变量都缺失时,新变量才应具有缺失值。
【问题讨论】:
-
egen通常允许相当复杂的参数。这里的限制特定于rowtotal(),它只需要一个 varlist。 -
欢迎来到 Stack Overflow。最好提供一些示例数据和预期的输出。这将最大限度地提高您获得有用答案的机会。有关如何改进未来问题的提示,请阅读How to create high quality reproducible examples in Stata。
标签: stata