// Creates w_sppno - Spouse's person number: PNO // INPUT FILE - w_egoalt.dta // OUTPUT FILE - w_sppno.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 k l { // 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" } use "${inpath}/${wave}egoalt${dta}", clear /*-------------ORIGINAL CODE--------------*/ * Creates spouse/civil partner pointers preserve clonevar ${wave}sppid_=apidp if (${wave}relationship_dv==1 | ${wave}relationship_dv==3) bysort ${wave}hidp ${wave}pno: egen long ${wave}sppid=min(${wave}sppid_) replace ${wave}sppid=-8 if ${wave}sppid==. lab var ${wave}sppid "Spouse's person identifier: PIDP" lab def ${wave}sppid -8"inapplicable", replace lab val ${wave}sppid ${wave}sppid clonevar ${wave}sppno_=${wave}apno if (${wave}relationship_dv==1 | ${wave}relationship_dv==3) bysort ${wave}hidp ${wave}pno: egen long ${wave}sppno=min(${wave}sppno_) replace ${wave}sppno=0 if ${wave}sppno==. lab def ${wave}sppno 0 "spouse not in hh" lab val ${wave}sppno ${wave}sppno lab var ${wave}sppno "Spouse's person number: PNO" * For each individual keep only one obs bysort ${wave}hidp ${wave}pno: gen oneperperson=_n keep if oneperperson==1 keep ${wave}hidp ${wave}pno ${wave}sppno ${wave}sppid sort ${wave}hidp ${wave}pno save "${outpath}/${wave}sppid_.dta", replace /* need to merge with indall to create correct missings for single households */ use ${wave}hidp ${wave}pno using "${inpath}/${wave}indall${dta}" /* egoalt with some extra vars and correction */ sort ${wave}hidp ${wave}pno merge ${wave}hidp ${wave}pno using "${outpath}/${wave}sppid_.dta" tab _merge replace ${wave}sppid=-8 if _merge==1 /* single person hh */ replace ${wave}sppno=0 if _merge==1 /* single person hh */ drop _merge sort ${wave}hidp ${wave}pno lab dat "Pointers to the spouse" save "${outpath}/${wave}sppno.dta", replace restore * Housekeeping erase "${outpath}/${wave}sppid_.dta" }