我需要帮助来确定和删除满足某些条件的观察结果。我的数据如下所示:
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
ORtotal == 1
作为条件。