Фильтрация наблюдений с неверной датой начала в данных панели - PullRequest
0 голосов
/ 02 декабря 2018

Я работаю с данными панели в 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 года.

у кого-нибудь есть идеи?


РЕДАКТИРОВАТЬ:

Я чувствую, что путь будет получить все удостоверения личности для компаний, которые не были опрошены в 2010 годуи брось их.а затем забрать все компании с 2009 года или раньше и отбросить их.Но я не знаю, как это будет реализовано в Stata.

1 Ответ

0 голосов
/ 02 декабря 2018

Для вашего игрушечного примера работает следующее:

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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...