过滤掉面板数据中开始日期错误的观察结果

Filtering out observations with wrong start date in panel data

我正在 Stata 中处理面板数据。

这是企业每年被质疑的数据。我只想分析特定年份(2010)首次被质疑的公司的数据。我想去掉所有非2010年首次面试的公司的条目。数据如下形式:

idnum year
1     2010 
1     2011
1     2012
2     2009
2     2010
2     2011
3     2011
3     2012

所以公司可能之前已经面试过,在这种情况下我想放弃他们,或者第一次面试过后,在这种情况下我也想放弃他们。所以在图片的例子中我只想保留第一家公司的条目(idnum = 1)。

我试过以下方法:

by idnum, sort: drop if year<2010

但是,这只会删除 2010 年之前的条目,而不是所有在 2010 年之前被质疑的具有该 ID 的条目。

有没有人有什么想法?


编辑:

我觉得要走的路是获取 2010 年未接受采访的公司的所有 ID,然后删除它们。然后从 2009 年或之前获取所有公司并删除它们。但我不知道在 Stata 中如何实现。

以下适用于您的玩具示例:

clear
input idnum year
1 2010
1 2011
1 2012
2 2009
2 2010
2 2011
2 2012
3 2011
3 2012
end

bysort idnum (year): generate tag = year[1] != 2010 

list, sepby(idnum)

     +--------------------+
     | idnum   year   tag |
     |--------------------|
  1. |     1   2010     0 |
  2. |     1   2011     0 |
  3. |     1   2012     0 |
     |--------------------|
  4. |     2   2009     1 |
  5. |     2   2010     1 |
  6. |     2   2011     1 |
  7. |     2   2012     1 |
     |--------------------|
  8. |     3   2011     1 |
  9. |     3   2012     1 |
     +--------------------+

drop if tag

list

     +--------------------+
     | idnum   year   tag |
     |--------------------|
  1. |     1   2010     0 |
  2. |     1   2011     0 |
  3. |     1   2012     0 |
     +--------------------+

或一行:

bysort idnum (year): drop if year[1] != 2010