如何替换多个变量的变量校验值

How to replace variable checking values of several variables

我在 Stata 中有一个名为 math_subject 的变量,其值为 1 和 2。现在我想替换变量 math_subject = 0 中的值,如果其他 30 个变量 == 2。我是要求一个简短的方法来做到这一点。

replace math_subject = 0 如果所有 30 个具有不同命名格式的变量 == 2.

这是一个使用 5 个变量而不是 30 个变量的简化示例,但您应该能够修改此示例。

clear
input byte(math_subject var1 var2 var3 var4 var5)
2 1 1 1 2 0
1 2 2 2 2 2
1 0 1 2 0 1
2 0 2 0 0 2
2 2 2 0 1 2
2 1 2 2 1 2
1 2 2 2 2 2
2 0 0 2 0 1
1 2 1 0 1 1
2 1 0 1 0 2
end

* Count number of variables that equals 2 for each observation
egen count_twos = anycount(var1 var2 var3 var4 var5) , values(2)

* Set math_subject to 0 if count_twos equals the number of variables in anycount() above
replace math_subject = 0 if count_twos == 5