// Creates w_livesp_dv - Does respondant live with spouse // INPUT FILE - w_egoalt.dta, w_indall.dta // OUTPUT FILE - w_livesp.dta // WRITE FILEPATH WHERE YOU HAVE DOWNLOADED THE DATA global in "" // WRITE FILEPATH WHERE YOU WOULD LIKE TO SAVE THE OUTPUT FILE global outpath "" // 1 is for BHPS, 2 is for UKHLS global cohort "2" foreach w in a b c d e f g h i j { // INCLUDE WAVE LETTERS FOR THE WAVES NEEDED global wave "`w'_" global num=strpos("abcdefghijklmnopqrstuvwxyz","`w'") global dta "" global waveno=$num global inpath "${in}/bhps_w${num}" if $cohort==2 { global waveno=$num+18 global inpath "${in}/ukhls_w${num}" } use "${inpath}/${wave}egoalt${dta}", clear /*-------------ORIGINAL CODE--------------*/ // married partner in the household gen ${wave}livesp_=(${wave}relationship_dv==1 | ${wave}relationship_dv==3) bys ${wave}hidp ${wave}pno: egen ${wave}livesp_dv=max(${wave}livesp_) lab def ${wave}livesp_dv 1"Yes" 0"No" lab val ${wave}livesp_dv ${wave}livesp_dv lab var ${wave}livesp_dv "Lives with spouse in hh" * For each individual keep only one obs bysort ${wave}hidp ${wave}pno: keep if _n==1 keep ${wave}hidp ${wave}pno *_dv drop ${wave}relationship_dv // ADD INDALL INFORMATION joinby ${wave}hidp ${wave}pno using "${inpath}/${wave}indall${dta}", unmatched(using) update tab _merge recode ${wave}livesp_dv (.=0) if _merge==2 /* 1-person hh */ drop _merge * Target keep ${wave}hidp ${wave}pno ${wave}livesp_dv sort ${wave}hidp ${wave}pno lab dat "Living with spouse, derived" save "${outpath}/${wave}livesp_dv.dta", replace }