// Creates w_chsdq_dv - Creates SDQ Subscales // INPUT FILE - w_indresp.dta // OUTPUT FILE - w_chsdq_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" } use "${inpath}/${wave}child${dta}", clear set more off drop *_dv /*-------------ORIGINAL CODE--------------*/ /*SDQ Scoring*/ *Scoring adjustment* global vloop1 "${wave}chsdqa ${wave}chsdqb ${wave}chsdqc ${wave}chsdqd ${wave}chsdqe ${wave}chsdqf ${wave}chsdqh" global vloop2 "${wave}chsdqi ${wave}chsdqj ${wave}chsdql ${wave}chsdqm ${wave}chsdqo ${wave}chsdqp ${wave}chsdqq" global vloop3 "${wave}chsdqr ${wave}chsdqs ${wave}chsdqt ${wave}chsdqv ${wave}chsdqw ${wave}chsdqx" global vloop "${vloop1} ${vloop2} ${vloop3}" foreach var of global vloop { recode `var' (4 = -1) // assume can't say = don't know. recode `var' (-11/-1 = .) gen `var'r=`var'-1 } *Reverse Scoring* global vloop "${wave}chsdqg ${wave}chsdqk ${wave}chsdqn ${wave}chsdqu ${wave}chsdqy" foreach var of global vloop { recode `var' 4 = -1 // assume can't say = don't know. recode `var' -11/-1 = . omscore `var' gen `var'r=rr_`var'-1 } /*Creating SDQ Subscales. NB. Subscales can be computed as long as there are no missings on at least 3 out of /// 5 items forming the scale*/ egen n_emotion=robs(${wave}chsdqcr ${wave}chsdqhr ${wave}chsdqmr ${wave}chsdqpr ${wave}chsdqxr) egen ${wave}chsdqes_dv =rmean(${wave}chsdqcr ${wave}chsdqhr ${wave}chsdqmr ${wave}chsdqpr ${wave}chsdqxr) if n_emotion>2 & n_emotion~=. replace ${wave}chsdqes_dv =round(${wave}chsdqes_dv*5) egen n_conduct=robs(${wave}chsdqer ${wave}chsdqgr ${wave}chsdqlr ${wave}chsdqrr ${wave}chsdqvr) egen ${wave}chsdqcp_dv=rmean(${wave}chsdqer ${wave}chsdqgr ${wave}chsdqlr ${wave}chsdqrr ${wave}chsdqvr) if n_conduct>2 & n_conduct~=. replace ${wave}chsdqcp_dv=round(${wave}chsdqcp_dv*5) egen n_hyper=robs(${wave}chsdqbr ${wave}chsdqjr ${wave}chsdqor ${wave}chsdqur ${wave}chsdqyr) egen ${wave}chsdqha_dv=rmean(${wave}chsdqbr ${wave}chsdqjr ${wave}chsdqor ${wave}chsdqur ${wave}chsdqyr) if n_hyper>2 & n_hyper~=. replace ${wave}chsdqha_dv=round(${wave}chsdqha_dv*5) egen n_peer=robs(${wave}chsdqfr ${wave}chsdqkr ${wave}chsdqnr ${wave}chsdqsr ${wave}chsdqwr) egen ${wave}chsdqpp_dv=rmean(${wave}chsdqfr ${wave}chsdqkr ${wave}chsdqnr ${wave}chsdqsr ${wave}chsdqwr) if n_peer>2 & n_peer~=. replace ${wave}chsdqpp_dv=round(${wave}chsdqpp_dv*5) egen n_prosoc=robs(${wave}chsdqar ${wave}chsdqdr ${wave}chsdqir ${wave}chsdqqr ${wave}chsdqtr) egen ${wave}chsdqps_dv=rmean(${wave}chsdqar ${wave}chsdqdr ${wave}chsdqir ${wave}chsdqqr ${wave}chsdqtr) if n_prosoc>2 & n_prosoc~=. replace ${wave}chsdqps_dv=round(${wave}chsdqps_dv*5) *SDQ Total Difficulties Score* gen ${wave}chsdqtd_dv = ${wave}chsdqes_dv + ${wave}chsdqcp_dv + ${wave}chsdqha_dv + ${wave}chsdqpp_dv label variable ${wave}chsdqes_dv "SDQ Subscale: Emotional Symptoms" label variable ${wave}chsdqcp_dv "SDQ Subscale: Conduct Problems" label variable ${wave}chsdqha_dv "SDQ Subscale: Hyperactivity/Inattention" label variable ${wave}chsdqpp_dv "SDQ Subscale: Peer Relationship Problems" label variable ${wave}chsdqps_dv "SDQ Subscale: Prosocial" label variable ${wave}chsdqtd_dv "SDQ Total Difficulties Score" global vloop "${wave}chsdqes_dv ${wave}chsdqcp_dv ${wave}chsdqha_dv ${wave}chsdqpp_dv ${wave}chsdqps_dv ${wave}chsdqtd_dv" foreach var of global vloop { recode `var' (.=-9) lab define `var' -9 "missing", replace lab define `var' -8 "inapplicable", add lab val `var' `var' fre `var' } for var ${wave}chsdqes_dv ${wave}chsdqcp_dv ${wave}chsdqha_dv ${wave}chsdqpp_dv /// ${wave}chsdqps_dv ${wave}chsdqtd_dv: recode X (-9 .=-8) if (${wave}dvage~=5 & ${wave}dvage~=8) for var ${wave}chsdqes_dv ${wave}chsdqcp_dv ${wave}chsdqha_dv ${wave}chsdqpp_dv /// ${wave}chsdqps_dv ${wave}chsdqtd_dv: recode X (.=-9) if (${wave}dvage==5 | ${wave}dvage==8) keep ${wave}hidp ${wave}pno *_dv order ${wave}hidp ${wave}pno sort ${wave}hidp ${wave}pno lab dat "SDQ, child-level DV" save "${outpath}/${wave}chsdq_dv.dta", replace }