Stata 如果在面板数据中观察到1,则生成等于1的变量
我有个人ID的以下数据,以及他们每年是否有保险: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 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=。
谢谢!