// Creates w_cohab_dv - Does respondant live with cohabitee in household // INPUT FILES - w_egoalt.dta , w_indall.dta // OUTPUT FILE - w_cohab_dv.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-----------------*/ // cohabitee in the household gen ${wave}cohab_=(${wave}relationship_dv==2) bys ${wave}hidp ${wave}pno: egen ${wave}cohab_dv=max(${wave}cohab_) lab def ${wave}cohab_dv 1"Yes" 0"No" -9 "Missing" /// -8 "Inapplicable" /// -7 "Proxy respondent" /// -2 "Refusal" /// -1 "Don't know" lab val ${wave}cohab_dv ${wave}cohab_dv lab var ${wave}cohab_dv "Lives with cohabitee 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}single_dv to 1 if 1-person household recode ${wave}cohab_dv (.=0) if _merge==2 drop _merge * Target keep ${wave}hidp ${wave}pno ${wave}cohab_dv sort ${wave}hidp ${wave}pno lab dat "Living as cohabitee, derived" save "${outpath}/${wave}cohab_dv.dta", replace }