我有一个关于就业历史的数据集,如下所示:
Year PersonID Company
2010 a 1
2010 b 1
2010 c 2
2010 d 3
2010 e 1
2011 a 2
2011 b 1
2011 c 2
2011 d 3
2011 e 1
我想创建一个变量,如果此人与处于同一公司,则该变量等于1 Person a
。请注意,Person a
可能会随着时间的推移而改变工作。
结果如下:
Year PersonID Company SameAsA
2010 a 1 1
2010 b 1 1
2010 c 2 0
2010 d 3 0
2010 e 1 1
2011 a 2 1
2011 b 1 0
2011 c 2 1
2011 d 3 0
2011 e 1 0
如何生成变量“ SameAsA”?
您想要一个a
在给定时间进入公司的指标变量。@Cybernike的方法可以这样伸缩:
clear
input Year str3 PersonID Company
2010 a 1
2010 b 1
2010 c 2
2010 d 3
2010 e 1
2011 a 2
2011 b 1
2011 c 2
2011 d 3
2011 e 1
end
bysort Year Company : egen wanted = max(PersonID == "a")
list, sepby(Year Company)
+------------------------------------+
| Year PersonID Company wanted |
|------------------------------------|
1. | 2010 e 1 1 |
2. | 2010 a 1 1 |
3. | 2010 b 1 1 |
|------------------------------------|
4. | 2010 c 2 0 |
|------------------------------------|
5. | 2010 d 3 0 |
|------------------------------------|
6. | 2011 e 1 0 |
7. | 2011 b 1 0 |
|------------------------------------|
8. | 2011 c 2 1 |
9. | 2011 a 2 1 |
|------------------------------------|
10. | 2011 d 3 0 |
+------------------------------------+