45 lines
1.1 KiB
Plaintext
45 lines
1.1 KiB
Plaintext
clear all
|
|
cd e:\chililabdata\data
|
|
use individual
|
|
sort individid
|
|
save, replace
|
|
use observation
|
|
sort observeid
|
|
save, replace
|
|
use indmarstatus
|
|
rename mar_sobserveid observeid
|
|
sort observeid
|
|
merge m:1 observeid using observation, keepusing(obs_entry_date)
|
|
keep if _merge ==3
|
|
gen visitdate = obs_entry_date/86400000
|
|
gen year = year( obs_entry_date/86400000)
|
|
drop if year < 2004
|
|
gen h = halfyear(obs_entry_date/86400000)
|
|
gen round = yh(year,h)
|
|
sort individid round
|
|
gen period = round[_n+1]-round
|
|
replace period = 109-round if individid!=individid[_n+1]
|
|
expand period
|
|
replace round = round-89
|
|
sort individid round
|
|
by individid round: gen p= _n-1
|
|
replace round = round + p
|
|
drop if round > 19
|
|
drop period p _merge
|
|
tostring round, generate(rounds)
|
|
replace rounds = "0" + rounds if strlen(rounds) == 1
|
|
gen individkey = individid + rounds
|
|
sort individkey
|
|
duplicates drop individkey, force
|
|
|
|
sort individid
|
|
merge m:1 individid using individual, keepusing(gender ethnicid bod)
|
|
gen firstdate = mdy(7,1,2004)
|
|
gen roundtime = firstdate+ 180*round
|
|
gen age = (roundtime-bod)/365.25
|
|
drop mar_episodeid observeid mar_eobserveid obs_entry_date year h _merge
|
|
save std_marstatus, replace
|
|
|
|
|
|
|