clear
input str1 企业 double(year x)
"A" 2006 2.025
"A" 2007 1.042
"A" 2008 .297
"A" 2010 1.72
"A" 2011 .729
"A" 2012 .861
"A" 2013 .2393
"A" 2014 .516
"A" 2015 1.81
"A" 2016 1.015
"A" 2018 1.095
"A" 2019 1.33
"A" 2020 .360
"A" 2021 .735
"B" 2009 -.961
"B" 2010 .7521
"B" 2011 -.466
"B" 2012 .752
end
egen id = group(企业)
gen var1 = 1
bys id (year): gen var2 = sum(var1)
gen var3 = 0
bys id (year): replace var3 = year[1] if var2 == 1
bys id (year): replace var3 = year[_n] -year[_n-1] if var2 >1
gen var4 = 0
replace var4 = 1 if var3 == 2
gen var5 = 0
replace var5 = year if var4 == 1
bys id : egen var6 = max(var5)
bys id : drop if (year - var6) == 1
bys id : drop if (year - var6) == 0
bys id : drop if (year - var6) == -2
bys id : drop if (year - var6) == -3
drop id var1-var6
list
+---------------------+
| 企业 year x |
|---------------------|
1. | A 2006 2.025 |
2. | A 2007 1.042 |
3. | A 2008 .297 |
4. | A 2010 1.72 |
5. | A 2011 .729 |
|---------------------|
6. | A 2012 .861 |
7. | A 2013 .2393 |
8. | A 2014 .516 |
9. | A 2020 .36 |
10. | A 2021 .735 |
|---------------------|
11. | B 2009 -.961 |
12. | B 2010 .7521 |
13. | B 2011 -.466 |
14. | B 2012 .752 |
+---------------------+
按照楼上代码的结果是这样的