我有一个以类似方式结束的变量列表:
variable_1_2
variable_1_3
variable_1_4
variable_2_2
variable_2_3
等等。
我想根据所有这些变量的值来定义一个变量。如果其中任何一个为0,我希望我的新变量也为0,如下所示:
gen newVar = .
replace newVar = 0 if variable_* == 0
然而,这返回";无效名称";。
通配符不能在if语句中使用吗?有办法绕过这个吗?
的结果
generate wanted = .
foreach v of var variable_* {
replace wanted = 0 if `v' == 0
}
如果任何参数为0,则将为0,否则将丢失。
egen anyzero = anymatch(variable_*), values(0)
如果任何参数为0,则将生成一个为1的指示符,如果没有参数为0则生成0的指示符。如果需要补码,您可以随时翻转0和1作为结果。