Держите фирмы с четырьмя годами подряд - PullRequest
1 голос
/ 11 февраля 2020

Я использую данные ExecuComp / Compustat, которые выглядят примерно так:

  gvkey|Year |Ticker  |
-------|-----|--------|
 001111| 2006| abc    |
 001111| 2007| abc    |
 001111| 2008| abc    |
 001111| 2009| abc    |
 001112| 2006| www    |
 001112| 2009| www    |
 001113| 2008| ttt    |
 001114| 2010| vvv    |

Как сохранить только те фирмы, у которых есть 4 года наблюдений?

Я пытался прочитать FAQ и связанные с ним вопросы на форуме, но, похоже, не могу понять, как это сделать.

1 Ответ

1 голос
/ 11 февраля 2020

У меня работает следующее:

clear

input gvkey Year str3 Ticker
001111 2006 abc     
001111 2007 abc     
001111 2008 abc     
001111 2009 abc     
001112 2006 www     
001112 2009 www     
001113 2008 ttt     
001114 2010 vvv  
end

tsset gvkey Year

tsspell, f(L.Year == .) 

egen tag = max(_seq), by(gvkey _spell)

keep if tag == 4

list

     +----------------------------------------------------+
     | gvkey   Year   Ticker   _spell   _seq   _end   tag |
     |----------------------------------------------------|
  1. |  1111   2006      abc        1      1      0     4 |
  2. |  1111   2007      abc        1      2      0     4 |
  3. |  1111   2008      abc        1      3      0     4 |
  4. |  1111   2009      abc        1      4      1     4 |
     +----------------------------------------------------+
...