Working with two different event datasets: event1 and event2. If the dates overlapped I would like the dummy variable (Var1) to be merged. Minimum working example below using rangejoin.
Code:
ssc install dataex
ssc install rangejoin
ssc install rangestat
clear
input byte id int(StartYear1 EndYear1 Var1)
1 1950 1960 1
2 1950 1960 1
3 1950 1960 1
4 1950 1960 1
5 1950 1960 1
end
save "events1.dta", replace
clear
input byte id int(StartYear2 EndYear2)
1 1955 1965
2 1945 1955
3 1951 1959
4 1949 1961
5 1940 1950
end
save "events2.dta", replace
rangejoin StartYear1 StartYear2 EndYear2 using "events1.dta", by(id)
drop StartYear1 EndYear1
rangejoin EndYear1 StartYear2 EndYear2 using "events1.dta", by(id)
drop StartYear1 EndYear1
gen Var = (Var1==1 | Var1_U==1)
drop Var1 Var1_U
. list, sepby(id)
+--------------------------------+
| id StartY~2 EndYear2 Var |
|--------------------------------|
1. | 1 1955 1965 1 |
|--------------------------------|
2. | 2 1945 1955 1 |
|--------------------------------|
3. | 3 1951 1959 0 |
|--------------------------------|
4. | 4 1949 1961 1 |
|--------------------------------|
5. | 5 1940 1950 1 |
+--------------------------------+Code:
. list, sepby(id)
+--------------------------------+
| id StartY~2 EndYear2 Var |
|--------------------------------|
1. | 1 1955 1965 1 |
|--------------------------------|
2. | 2 1945 1955 1 |
|--------------------------------|
3. | 3 1951 1959 1 |
|--------------------------------|
4. | 4 1949 1961 1 |
|--------------------------------|
5. | 5 1940 1950 1 |
+--------------------------------+
0 Response to Rangejoin Overlapping Years
Post a Comment