// Creates w_cgnumab_dv - Cognitive ability: Numeric ability: Count of items answered correctly // INPUT FILE - w_indresp.dta // OUTPUT FILE - w_cgnumab_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 { // 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}indresp${dta}", clear set more off drop *_dv /*-------------ORIGINAL CODE--------------*/ * Numeric ability test score gen beginna=(${wave}nasofa ==1 | ${wave}nasofa==2) // first item has to be answered egen ${wave}cgna_dv = anycount(${wave}nasofa ${wave}nadisease ${wave}nacar /// ${wave}nadrink ${wave}nalottery ${wave}nainterest), value(1) replace ${wave}cgna_dv = -8 if beginna == 0 // did not answer first item, irrespective of reason replace ${wave}cgna_dv = -2 if ${wave}nasofa==-2 // refused to take part in the test replace ${wave}cgna_dv = -9 if ${wave}nasofa==-9 & ${wave}nadisease==-9 & ${wave}nacar==-9 // first 3 items missing replace ${wave}cgna_dv =-7 if ${wave}ivfio==2 // test was inapplicable to proxy respondents lab var ${wave}cgna_dv "Cognitive ability: Numeric ability: Count of items answered correctly" lab def ${wave}cgna_dv -9 "missing" -8 "inapplicable" -7"proxy" -2"refused", replace lab def ${wave}cgna_dv 0"no item answered correctly" 5"all items answered correctly", add lab val ${wave}cgna_dv ${wave}cgna_dv fre ${wave}cgna_dv // rename interviewer observations clonevar ${wave}cgivna11_dv= ${wave}nacont11 lab var ${wave}cgivna11_dv "Cognitive ability: hh member present during Numeric ability" clonevar ${wave}cgivna12_dv= ${wave}nacont12 lab var ${wave}cgivna12_dv "Cognitive ability: non-hh member present during Numeric ability" clonevar ${wave}cgivna13_dv= ${wave}nacont13 lab var ${wave}cgivna13_dv "Cognitive ability: no-one present during Numeric ability" for var ${wave}nacont11 ${wave}nacont12 ${wave}nacont13: replace X=. if X<0 egen ${wave}cgivna1_dv=group(${wave}nacont11 ${wave}nacont12 ${wave}nacont13) replace ${wave}cgivna1_dv=${wave}cgivna11_dv if ${wave}cgivna1_dv==. lab def ${wave}cgivna1_dv -9 "missing" -8 "inapplicable" -7"proxy" -2"refused" -1 "don't know", replace lab def ${wave}cgivna1_dv 1"no-one else present", add lab def ${wave}cgivna1_dv 2"hh member present", add lab def ${wave}cgivna1_dv 3"non-hh member present", add lab def ${wave}cgivna1_dv 4"hh & non-hh member present", add lab val ${wave}cgivna1_dv ${wave}cgivna1_dv lab var ${wave}cgivna1_dv "Cognitive ability: anyone present during Numeric ability" forvalues x=1(1)16 { clonevar ${wave}cgivna2`x'_dv= ${wave}nacont2`x' lab var ${wave}cgivna2`x'_dv "Cognitive ability: pno `x' present during Numeric ability" } clonevar ${wave}cgivna3_dv= ${wave}nacont3 lab var ${wave}cgivna3_dv "Cognitive ability: Other person helped w Numeric ability" forvalues x=1(1)8 { clonevar ${wave}cgivnaref`x'_dv= ${wave}nastop`x' } clonevar ${wave}cgivnaref97_dv= ${wave}nastop97 lab var ${wave}cgivnaref1_dv "Cognitive ability: refused Numeric ability: understanding of task" lab var ${wave}cgivnaref2_dv "Cognitive ability: refused Numeric ability: physical disability" lab var ${wave}cgivnaref3_dv "Cognitive ability: refused Numeric ability: attention problems" lab var ${wave}cgivnaref4_dv "Cognitive ability: refused Numeric ability: insufficient time" lab var ${wave}cgivnaref5_dv "Cognitive ability: refused Numeric ability: anxiety/discomfort" lab var ${wave}cgivnaref6_dv "Cognitive ability: refused Numeric ability: others present" lab var ${wave}cgivnaref7_dv "Cognitive ability: refused Numeric ability: R does not want to do task" lab var ${wave}cgivnaref8_dv "Cognitive ability: refused Numeric ability: language problems" lab var ${wave}cgivnaref97_dv "Cognitive ability: refused Numeric ability: other problem" order pidp ${wave}cgna_dv ${wave}cgivna1_dv ${wave}cgivna1*_dv ${wave}cgivna2*_dv ${wave}cgivna3_dv ${wave}cgivnaref*_dv isvar ${wave}cgna_dv ${wave}cgivna1_dv foreach x in `r(varlist)' { replace `x'=-7 if ${wave}ivfio==2 } keep pidp ${wave}cgna_dv ${wave}cgivna1_dv lab dat "Cognitive ability: numeric ability, derived variables" compress save "${outpath}/${wave}cgnumab_dv", replace }