1
|
|
2
|
** 7.2 DATA PREPARATION: METHOD II
|
3
|
**********************************
|
4
|
|
5
|
foreach w in a b c d e f g h {
|
6
|
|
7
|
use "$dir/`w'_indresp", clear
|
8
|
keep `w'_hidp `w'_pno `w'_ppno `w'_ivfio `w'_sex `w'_dvage `w'_jbstat `w'_mastat_dv
|
9
|
|
10
|
// Create within-household unique partnership identifier.
|
11
|
gen `w'_partnum=cond(`w'_pno < `w'_ppno, `w'_pno, `w'_ppno) if `w'_ppno>0
|
12
|
lab var `w'_partnum "Partnership identifier, within household"
|
13
|
|
14
|
// Drop cases who are single or partner/spouse is not present in HH.
|
15
|
drop if `w'_ppno<=0
|
16
|
|
17
|
// Count the number of respondents for each partnership ID
|
18
|
// Those with non-responding spouses will have `w'_numinpart=1.
|
19
|
bysort `w'_hidp `w'_partnum: egen `w'_numinpart = sum(`w'_ppno > 0)
|
20
|
label variable `w'_numinpart "# respondents from partnership (max 2)"
|
21
|
tab `w'_numinpart
|
22
|
|
23
|
sort `w'_hidp `w'_partnum `w'_pno
|
24
|
list `w'_hidp `w'_partnum `w'_pno `w'_ppno `w'_numinpart in 1/50, sepby(`w'_hidp)
|
25
|
|
26
|
// Keep only matched cases, that is, where both partners are present in the HH
|
27
|
// and both are respondents.
|
28
|
keep if `w'_numinpart==2
|
29
|
|
30
|
// Assign spouse variable values
|
31
|
bysort `w'_hidp `w'_partnum: ge sp_`w'_dvage=cond(_n==2,`w'_dvage[1],`w'_dvage[2],.) ///
|
32
|
if `w'_partnum<.
|
33
|
lab val sp_`w'_dvage `w'_dvage
|
34
|
|
35
|
foreach v in `w'_sex `w'_mastat_dv `w'_jbstat {
|
36
|
bysort `w'_hidp `w'_partnum: ge sp_`v' = cond(_n==2, `v'[1], `v'[2], .) ///
|
37
|
if `w'_partnum < .
|
38
|
lab val sp_`v' `v'
|
39
|
}
|
40
|
|
41
|
rename `w'_* *
|
42
|
g wave=strpos("abcdefgh","`w'")
|
43
|
save `w'_couples, replace
|
44
|
}
|
45
|
|