如何替换多个变量的变量校验值
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
我在 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