【问题标题】:Identify and delete observations that do not meet conditions in Stata识别并删除Stata中不符合条件的观测值
【发布时间】:2020-12-09 11:55:29
【问题描述】:

我需要帮助来识别和删除满足特定条件的观察结果。我的数据如下所示:

    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 中做到这一点?

【问题讨论】:

    标签: stata drop


    【解决方案1】:

    考虑以下新变量:

    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 作为条件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 2013-04-14
      • 2017-03-22
      • 1970-01-01
      相关资源
      最近更新 更多