// Creates parenting styles variables psdq1pno psdqa1_dv psdqb1_dv psdqc1_dv psdq2pno psdqa2_dv psdqb2_dv psdqc2_dv // INPUT FILE - w_indresp.dta // OUTPUT FILE - w_chparstyle_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 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" } /*-------------ORIGINAL CODE--------------*/ if ${waveno}>=21 { use pidp ${wave}hidp ${wave}pno ${wave}childpno ${wave}psdq*_dv using "$inpath/${wave}parstyle", clear } bys ${wave}hidp ${wave}childpno (${wave}pno): gen index=_n gen ${wave}psdq1pno=${wave}pno replace ${wave}psdq1pno=-8 if index==2 lab def ${wave}psdq1pno -9"missing" -8"inapplicable", replace lab val ${wave}psdq1pno ${wave}psdq1pno lab var ${wave}psdq1pno "PSDQ: PNO of responsible adult 1" gen ${wave}psdq2pno=${wave}pno replace ${wave}psdq2pno=-8 if index==1 lab def ${wave}psdq2pno -9"missing" -8"inapplicable", replace lab val ${wave}psdq2pno ${wave}psdq2pno lab var ${wave}psdq2pno "PSDQ: PNO of responsible adult 2" drop ${wave}pno rename ${wave}childpno ${wave}pno foreach c in a b c { clonevar ${wave}psdq`c'1_dv=${wave}psdq`c'_dv replace ${wave}psdq`c'1_dv=-8 if index==2 // ra1 version inapplicable to ra2 clonevar ${wave}psdq`c'2_dv=${wave}psdq`c'_dv replace ${wave}psdq`c'2_dv=-8 if index==1 // ra2 version inapplicable to ra1 bys ${wave}hidp ${wave}pno: egen ${wave}psdq`c'1_=max(${wave}psdq`c'1_dv) bys ${wave}hidp ${wave}pno: egen ${wave}psdq`c'2_=max(${wave}psdq`c'2_dv) replace ${wave}psdq`c'1_dv=${wave}psdq`c'1_ replace ${wave}psdq`c'2_dv=${wave}psdq`c'2_ } bys ${wave}hidp ${wave}pno: egen ${wave}psdq2pno_=max(${wave}psdq2pno) replace ${wave}psdq2pno=${wave}psdq2pno_ bys ${wave}hidp ${wave}pno: keep if _n==1 keep ${wave}hidp ${wave}pno ${wave}psdq1pno ${wave}psdq2pno ${wave}psdq*1_dv ${wave}psdq*2_dv order ${wave}hidp ${wave}pno ${wave}psdq1pno ${wave}psdq*1* ${wave}psdq2pno ${wave}psdq*2* merge 1:1 ${wave}hidp ${wave}pno using "${inpath}/${wave}child${dta}", keep(3 2) //Need to replace dvage with age_dv // capture sum ${wave}age_dv //if _rc!=0 { // merge 1:1 pidp using ${agein}/${wave}age_dv, nogen keep(1 3) keepusing(${wave}age_dv) // } foreach c in a b c { recode ${wave}psdq`c'1_dv ${wave}psdq`c'2_dv ${wave}psdq1pno ${wave}psdq2pno (.=-8) if _merge==2 & ${wave}age_dv~=10 recode ${wave}psdq`c'1_dv ${wave}psdq`c'2_dv ${wave}psdq1pno ${wave}psdq2pno (.=-9) if ${wave}age_dv==10 //replaced dvage with age_dv //recode ${wave}psdq`c'1_dv ${wave}psdq`c'2_dv ${wave}psdq1pno ${wave}psdq2pno (.=-8) if _merge==2 & ${wave}dvage~=10 //recode ${wave}psdq`c'1_dv ${wave}psdq`c'2_dv ${wave}psdq1pno ${wave}psdq2pno (.=-9) if ${wave}dvage==10 lab def ${wave}psdq`c'1_dv -8"inapplicable" -9"missing", replace lab def ${wave}psdq`c'2_dv -8"inapplicable" -9"missing", replace lab val ${wave}psdq`c'1_dv ${wave}psdq`c'1_dv lab val ${wave}psdq`c'2_dv ${wave}psdq`c'2_dv } keep pidp ${wave}hidp ${wave}pno pidp ${wave}psdq1pno ${wave}psdq*1*_dv ${wave}psdq2pno ${wave}psdq*2_dv order ${wave}hidp ${wave}pno pidp ${wave}psdq1pno ${wave}psdq*1*_dv ${wave}psdq2pno ${wave}psdq*2_dv lab var ${wave}psdqa1_dv "PSDQ: Authoritative parenting scale, parent 1" lab var ${wave}psdqb1_dv "PSDQ: Authoritarian parenting scale, parent 1" lab var ${wave}psdqc1_dv "PSDQ: Permissive parenting scale, parent 1" lab var ${wave}psdqa2_dv "PSDQ: Authoritative parenting scale, parent 2" lab var ${wave}psdqb2_dv "PSDQ: Authoritarian parenting scale, parent 2" lab var ${wave}psdqc2_dv "PSDQ: Permissive parenting scale, parent 2" lab dat "child level PSDQ" save "${outpath}/${wave}chparstyle_dv", replace }