【问题标题】:Removing entire panel with missing values删除具有缺失值的整个面板
【发布时间】:2018-10-02 20:09:24
【问题描述】:

我正在处理一个面板数据集,其中缺少四个变量的值(在面板的开头、结尾和中间)。我想删除缺少值的整个面板。

这是我目前尝试使用的代码:

bysort BvD_ID YEAR: drop if sum(!missing(REV_LAY,EMP_LAY,FX_ASSET_LAY,MATCOST_LAY))==0

这段代码成功地删除了四个变量中任何一个具有缺失值的所有观测值,但它保留了具有非缺失值的观测值。

示例数据:

  Firm_ID  Year  REV_LAY  EMP_LAY  FX_ASSET_LAY
  001      2001  80       25       120
  001      2002  75       .        122
  001      2003  82       32       128
  002      2001  40       15       45
  002      2002  42       18       48
  002      2003  45       20       50

在上面的示例数据中,我想完全删除面板Firm_ID = 001

【问题讨论】:

    标签: stata missing-data panel-data


    【解决方案1】:

    你可以这样做:

    clear
    input Firm_ID  Year  REV_LAY  EMP_LAY  FX_ASSET_LAY
      001      2001  80       25       120
      001      2002  75       .        122
      001      2003  82       32       128
      002      2001  40       15       45
      002      2002  42       18       48
      002      2003  45       20       50
    end
    
    generate index = _n
    bysort Firm_ID (index): generate todrop = sum(missing(REV_LAY, EMP_LAY, FX_ASSET_LAY))
    by Firm_ID: drop if todrop[_N]
    
    list Firm_ID Year REV_LAY EMP_LAY FX_ASSET_LAY
    
       +-----------------------------------------------+
       | Firm_ID   Year   REV_LAY   EMP_LAY   FX_ASS~Y |
       |-----------------------------------------------|
    1. |       2   2001        40        15         45 |
    2. |       2   2002        42        18         48 |
    3. |       2   2003        45        20         50 |
       +-----------------------------------------------+
    

    【讨论】:

      猜你喜欢
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 2021-02-10
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 2013-11-30
      相关资源
      最近更新 更多