识别并删除 Stata 中不满足条件的观察
Identify and delete observations that do not meet conditions in Stata
我需要帮助来识别和删除满足特定条件的观察结果。我的数据如下所示:
ID caseID set Var1 Var2
1 1 1 1 0
1 2 1 2 0
1 3 1 3 1
1 4 2 1 0
1 5 2 2 0
1 6 2 3 1
2 7 3 1 0
2 8 3 2 0
2 9 3 3 1
2 10 4 1 0
2 11 4 2 0
2 12 4 3 0
对于每一组,我想要一个 Var2=1 的观察值和两个 Var2=0 的观察值。如果他们不满足这个条件,我想从集合中删除所有观察值。例如,我会删除 set=4 因为所有观察的 Var2=0。我如何在 Stata 中执行此操作?
考虑以下新变量:
egen count1 = total(Var2 == 1), by(set)
egen count0 = total(Var2 == 0), by(set)
egen total = total(Var2), by(set)
从字面上看你的问题意味着你想
keep if count1 == 1 & count0 == 2
但是如果集合的大小始终为 3,并且除了 0 或 1 之外没有其他可能的值,那么您只需要 count1 == 1
OR count0 == 2
OR total == 1
作为条件。
我需要帮助来识别和删除满足特定条件的观察结果。我的数据如下所示:
ID caseID set Var1 Var2
1 1 1 1 0
1 2 1 2 0
1 3 1 3 1
1 4 2 1 0
1 5 2 2 0
1 6 2 3 1
2 7 3 1 0
2 8 3 2 0
2 9 3 3 1
2 10 4 1 0
2 11 4 2 0
2 12 4 3 0
对于每一组,我想要一个 Var2=1 的观察值和两个 Var2=0 的观察值。如果他们不满足这个条件,我想从集合中删除所有观察值。例如,我会删除 set=4 因为所有观察的 Var2=0。我如何在 Stata 中执行此操作?
考虑以下新变量:
egen count1 = total(Var2 == 1), by(set)
egen count0 = total(Var2 == 0), by(set)
egen total = total(Var2), by(set)
从字面上看你的问题意味着你想
keep if count1 == 1 & count0 == 2
但是如果集合的大小始终为 3,并且除了 0 或 1 之外没有其他可能的值,那么您只需要 count1 == 1
OR count0 == 2
OR total == 1
作为条件。