Создать переменную, равную 1, если 1 когда-либо наблюдался в данных панели - PullRequest
2 голосов
/ 20 января 2020

У меня есть следующие данные с удостоверением личности и наличием у них страховки в каждом году:

ID    Year    Insured
1     2001    1
2     2001    0
3     2001    0
1     2002    1
2     2002    1
3     2002    0
1     2003    1
2     2003    0
3     2003    0

Я хочу добавить еще один столбец, который равен 1, если человек когда-либо застрахован. Например, у Лица 2 была страховка только в 2002 году, но это означает, что он имел страховку в какой-то момент, поэтому Ever_Ins должно равняться 1 во всех годах:

ID    Year    Insured  Ever_Ins
1     2001    1         1
2     2001    0         1
3     2001    0         0
1     2002    1         1
2     2002    1         1
3     2002    0         0
1     2003    1         1
2     2003    0         1
3     2003    0         0

Я не могу использовать egen Ever_Ins = max(Insured), by (ID), потому что Insured не пустышка в достоверных данных. Он имеет значения, такие как 9 для неизвестного.

1 Ответ

1 голос
/ 20 января 2020

Техника для «любых» и «всех» проблем описана в этом FAQ . См. Также этот документ для более подробного обсуждения. Вот один из способов сделать это.

clear 
input ID    Year    Insured
1     2001    1
2     2001    0
3     2001    0
1     2002    1
2     2002    1
3     2002    0
1     2003    1
2     2003    0
3     2003    0
end 

egen Ever_Ins = max(Insured == 1), by(ID) 
sort ID Year 
list , sepby(ID) 

     +--------------------------------+
     | ID   Year   Insured   Ever_Ins |
     |--------------------------------|
  1. |  1   2001         1          1 |
  2. |  1   2002         1          1 |
  3. |  1   2003         1          1 |
     |--------------------------------|
  4. |  2   2001         0          1 |
  5. |  2   2002         1          1 |
  6. |  2   2003         0          1 |
     |--------------------------------|
  7. |  3   2001         0          0 |
  8. |  3   2002         0          0 |
  9. |  3   2003         0          0 |
     +--------------------------------+
...