Stata 如果在面板数据中观察到1,则生成等于1的变量

Stata 如果在面板数据中观察到1,则生成等于1的变量,stata,Stata,我有个人ID的以下数据,以及他们每年是否有保险: 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年购买了保险,但这意味着他在某个时候购买了保

我有个人ID的以下数据,以及他们每年是否有保险:

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\u 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表示未知

中记录了“任何”和“所有”问题的技术。有关更详细的讨论,请参见。这里有一种方法

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 |
     +--------------------------------+
“任何”和“所有”问题的技术记录在中。有关更详细的讨论,请参见。这里有一种方法

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 |
     +--------------------------------+

你最好把9记为失踪。否则,只要你有这些数据要分析,你就要解决这个问题。请参阅有关重新编码的帮助
mvdecode
@NickCox刚刚用
recode-9=。
谢谢!你最好把9记为失踪。否则,只要你有这些数据要分析,你就要解决这个问题。请参阅有关重新编码的帮助
mvdecode
@NickCox刚刚用
recode-9=。
谢谢!