** 7.2 DATA PREPARATION: METHOD II ********************************** foreach w in a b c d e f g h { use "$dir/`w'_indresp", clear keep `w'_hidp `w'_pno `w'_ppno `w'_ivfio `w'_sex `w'_dvage `w'_jbstat `w'_mastat_dv // Create within-household unique partnership identifier. gen `w'_partnum=cond(`w'_pno < `w'_ppno, `w'_pno, `w'_ppno) if `w'_ppno>0 lab var `w'_partnum "Partnership identifier, within household" // Drop cases who are single or partner/spouse is not present in HH. drop if `w'_ppno<=0 // Count the number of respondents for each partnership ID // Those with non-responding spouses will have `w'_numinpart=1. bysort `w'_hidp `w'_partnum: egen `w'_numinpart = sum(`w'_ppno > 0) label variable `w'_numinpart "# respondents from partnership (max 2)" tab `w'_numinpart sort `w'_hidp `w'_partnum `w'_pno list `w'_hidp `w'_partnum `w'_pno `w'_ppno `w'_numinpart in 1/50, sepby(`w'_hidp) // Keep only matched cases, that is, where both partners are present in the HH // and both are respondents. keep if `w'_numinpart==2 // Assign spouse variable values bysort `w'_hidp `w'_partnum: ge sp_`w'_dvage=cond(_n==2,`w'_dvage[1],`w'_dvage[2],.) /// if `w'_partnum<. lab val sp_`w'_dvage `w'_dvage foreach v in `w'_sex `w'_mastat_dv `w'_jbstat { bysort `w'_hidp `w'_partnum: ge sp_`v' = cond(_n==2, `v'[1], `v'[2], .) /// if `w'_partnum < . lab val sp_`v' `v' } rename `w'_* * g wave=strpos("abcdefgh","`w'") save `w'_couples, replace }