*! version 3.0 11/11/93 ssa6: STB-22 program define tmerge version 3.0 capture describe, short if _result(1)!=0 | _result(2)!=0 { error 18 /* No file should be loaded in memory */ } parse "`*'", parse(" ()") if "`13'"!=")" | "`14'"!="" { di "See help tmerge" exit 198 } quietly describe using `2', short local nbvar = _result(2) local large = _result(3) quietly describe using `6', short local nbvar = `nbvar' + _result(2) + 5 + 5 local large = `large' + _result(3) + 6 + 5 di "set maxvar `nbvar' width `large'" di " " quietly capture set maxvar `nbvar' width `large' if _rc!=0 { error _rc } quietly { tempfile fichB fichA tempvar dumA dumBd dumBf use `6' capture drop _merge gen int `12'=`8' sort `1' `12' gen byte `dumBf'=1 save `fichB' use `2' capture drop _merge capture save `10' if _rc!=0 { di " " noi di "File `10' already exists. Replace?" _request(oui) if "%oui"=="oui" | "%oui"=="o" | "%oui"=="O" | "%oui"=="Y" | "%oui"=="yes" | "%oui"=="y" { save `10', replace } } gen byte `dumA'=1 gen int `12'=`4' quietly order `1' sort `1' `12' gen byte `dumBd'=1 save `fichA' capture drop _merge merge `1' `12' using `fichB' erase `fichB' replace `12'=-`12' sort `1' `12' capture assert `12'=-`4' & `12'=-`8' if `1'!=`1'[_n-1] if _rc==9 { di "Some individuals are not censored at the same time in both files." di "Please check your files." drop _all exit } } di "Please wait..." _crctmge `1'-`dumA' if _merge==2 _crctmge `dumBd'-`dumBf' if _merge==1 drop `dumA' `dumBd' `dumBf' quietly replace `12'=-`12' sort `1' `12' capture drop _File rename _merge _File capture lab def _File 1 "`2'" 2 "`6'" 3 "both" lab val _File _File lab var _File "Record from file..." di " " di "The variable '_File' indicates in which file the time change is originated," di "either `2' , `6' , or both." tab _File save `10', replace erase `fichA' end