"if" 语句中的通配符?
Wildcard inside an "if" statement?
我有一个以类似方式结尾的变量列表:
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
但是这个returns“无效名称”。
if 语句中不能使用通配符吗?有解决办法吗?
结果
generate wanted = .
foreach v of var variable_* {
replace wanted = 0 if `v' == 0
}
如果任何参数为 0,则为 0,否则为 0。
egen anyzero = anymatch(variable_*), values(0)
将生成一个指示符,如果任何参数为 0,则为 1;如果没有参数,则为 0。如果您需要补码,您可以随时翻转 0 和 1 作为结果。
我有一个以类似方式结尾的变量列表:
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
但是这个returns“无效名称”。
if 语句中不能使用通配符吗?有解决办法吗?
结果
generate wanted = .
foreach v of var variable_* {
replace wanted = 0 if `v' == 0
}
如果任何参数为 0,则为 0,否则为 0。
egen anyzero = anymatch(variable_*), values(0)
将生成一个指示符,如果任何参数为 0,则为 1;如果没有参数,则为 0。如果您需要补码,您可以随时翻转 0 和 1 作为结果。