// Creates w_cgns_dv - Cognitive ability variables: cgns1a_dv cgns1b_dv cgns2a_dv cgns2b_dv cgns1sc6_dv cgns1sc10_dv cgns2sc6_dv cgns2sc10_dv cgivns1_dv // INPUT FILE - w_indresp.dta // OUTPUT FILE - w_cgns_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--------------*/ // clone input variables set 1 - baseline clonevar ${wave}cgns1a1_dv=${wave}ns201g1 clonevar ${wave}cgns1a2_dv=${wave}ns202h1 clonevar ${wave}cgns1a3_dv=${wave}ns203i1 // clone input variables set 2 - baseline clonevar ${wave}cgns2a1_dv=${wave}ns221g clonevar ${wave}cgns2a2_dv=${wave}ns222h clonevar ${wave}cgns2a3_dv=${wave}ns223i // label clones forvalues x=1(1)3 { lab var ${wave}cgns1a`x'_dv "Cognitive ability: Number series: Set 1 A: whether item `x' correct" lab var ${wave}cgns2a`x'_dv "Cognitive ability: Number series: Set 2 A: whether item `x' correct" } // clone input variables set 1 - base qualifiers clonevar ${wave}cgns1a01_dv=${wave}ns204a1 clonevar ${wave}cgns1a02_dv=${wave}ns205b1 clonevar ${wave}cgns1a03_dv=${wave}ns206c1 clonevar ${wave}cgns1a11_dv=${wave}ns207d1 clonevar ${wave}cgns1a12_dv=${wave}ns208e1 clonevar ${wave}cgns1a13_dv=${wave}ns209f1 clonevar ${wave}cgns1a21_dv= ${wave}ns210j1 clonevar ${wave}cgns1a22_dv=${wave}ns211k1 clonevar ${wave}cgns1a23_dv= ${wave}ns212l1 clonevar ${wave}cgns1a31_dv= ${wave}ns213m1 clonevar ${wave}cgns1a32_dv=${wave}ns214n1 clonevar ${wave}cgns1a33_dv=${wave}ns215o1 // clone input variables set 2 - base qualifiers clonevar ${wave}cgns2a01_dv=${wave}ns224a2 clonevar ${wave}cgns2a02_dv=${wave}ns225b2 clonevar ${wave}cgns2a03_dv=${wave}ns226c2 clonevar ${wave}cgns2a11_dv=${wave}ns227d2 clonevar ${wave}cgns2a12_dv=${wave}ns228e2 clonevar ${wave}cgns2a13_dv=${wave}ns229f2 clonevar ${wave}cgns2a21_dv= ${wave}ns230j2 clonevar ${wave}cgns2a22_dv=${wave}ns231k2 clonevar ${wave}cgns2a23_dv= ${wave}ns232l2 clonevar ${wave}cgns2a31_dv= ${wave}ns233m2 clonevar ${wave}cgns2a32_dv=${wave}ns234n2 clonevar ${wave}cgns2a33_dv=${wave}ns235o2 // label clones forvalues x=0(1)3 { lab var ${wave}cgns1a`x'1_dv "Cognitive ability: Number series: # correct in Set 1 A=`x': item 1" lab var ${wave}cgns1a`x'2_dv "Cognitive ability: Number series: # correct in Set 1 A=`x': item 2" lab var ${wave}cgns1a`x'3_dv "Cognitive ability: Number series: # correct in Set 1 A=`x': item 3" lab var ${wave}cgns2a`x'1_dv "Cognitive ability: Number series: # correct in Set 2 A=`x': item 1" lab var ${wave}cgns2a`x'2_dv "Cognitive ability: Number series: # correct in Set 2 A=`x': item 2" lab var ${wave}cgns2a`x'3_dv "Cognitive ability: Number series: # correct in Set 2 A=`x': item 3" } for var ${wave}ns201g1 ${wave}ns202h1 ${wave}ns203i1 ${wave}ns216c ${wave}ns204a1 ${wave}ns205b1 ${wave}ns206c1 /// ${wave}ns207d1 ${wave}ns208e1 ${wave}ns209f1 ${wave}ns210j1 ${wave}ns211k1 ${wave}ns212l1 ${wave}ns213m1 /// ${wave}ns214n1 ${wave}ns215o1 ${wave}ns221g2 ${wave}ns222h2 ${wave}ns223i2 ${wave}ns226c ${wave}ns224a2 /// ${wave}ns225b2 ${wave}ns226c2 ${wave}ns227d2 ${wave}ns228e2 ${wave}ns229f2 ${wave}ns230j2 ${wave}ns231k2 /// ${wave}ns232l2 ${wave}ns233m2 ${wave}ns234n2 ${wave}ns235o2: recode X -9/-2 = . // recode to missing ** Target: quantitative reasoning test results // count correct items Set1 A egen ${wave}cgns1a_dv = anycount(${wave}ns201g1 ${wave}ns202h1 ${wave}ns203i1), value(1) replace ${wave}cgns1a_dv= . if (${wave}ns201g1==3) // R unable to do test egen cgns1a = rowmiss(${wave}ns201g1 ${wave}ns202h1 ${wave}ns203i1) replace ${wave}cgns1a_dv= . if cgns1a==3 replace ${wave}cgns1a_dv= -8 if ${wave}nsran==2 // list 1A not applicable // count correct items Set2 A egen ${wave}cgns2a_dv = anycount(${wave}ns221g2 ${wave}ns222h2 ${wave}ns223i2), value(1) egen cgns2a = rowmiss(${wave}ns221g2 ${wave}ns222h2 ${wave}ns223i2) replace ${wave}cgns2a_dv= . if cgns2a==3 replace ${wave}cgns2a_dv = -8 if ${wave}nsran==1 // label foreach x in 1a 2a { recode ${wave}cgns`x'_dv . =-9 replace ${wave}cgns`x'_dv = -7 if ${wave}ivfio==2 lab var ${wave}cgns`x'_dv "Cognitive ability: Number series `x': Number of correct items" lab def ${wave}cgns`x'_dv -9 "missing" -8 "inapplicable" -7"proxy" -2"refused", replace lab def ${wave}cgns`x'_dv 0"no item answered correctly" 3"all items answered correctly", add lab val ${wave}cgns`x'_dv ${wave}cgns`x'_dv fre ${wave}cgns`x'_dv } // Target 2: correct items depending on base level egen ${wave}cgns1a0 = anycount(${wave}ns204a1 ${wave}ns205b1 ${wave}ns206c1), value(1) egen ${wave}cgns1a1 = anycount(${wave}ns207d1 ${wave}ns208e1 ${wave}ns209f1), value(1) egen ${wave}cgns1a2 = anycount(${wave}ns210j1 ${wave}ns211k1 ${wave}ns212l1), value(1) egen ${wave}cgns1a3 = anycount(${wave}ns213m1 ${wave}ns214n1 ${wave}ns215o1), value(1) egen ${wave}cgns2a0 = anycount(${wave}ns224a2 ${wave}ns225b2 ${wave}ns226c2), value(1) egen ${wave}cgns2a1 = anycount(${wave}ns227d2 ${wave}ns228e2 ${wave}ns229f2), value(1) egen ${wave}cgns2a2 = anycount(${wave}ns230j2 ${wave}ns231k2 ${wave}ns232l2), value(1) egen ${wave}cgns2a3 = anycount(${wave}ns233m2 ${wave}ns234n2 ${wave}ns235o2), value(1) foreach x in 0 1 2 3 { // inapp. dep on how many answered correct replace ${wave}cgns1a`x' = -8 if ${wave}cgns1a_dv ~= (`x') & ${wave}nsran==1 replace ${wave}cgns1a`x' = -8 if ${wave}nsran==2 replace ${wave}cgns2a`x' = -8 if ${wave}cgns2a_dv ~= (`x') & ${wave}nsran==2 replace ${wave}cgns2a`x' = -8 if ${wave}nsran==1 } ** Target: quantitative reasoning test - combined egen ${wave}cgns1b_dv=rmax(${wave}cgns1a0 ${wave}cgns1a1 ${wave}cgns1a2 ${wave}cgns1a3) if ${wave}nsran==1 replace ${wave}cgns1b_dv= -8 if ${wave}nsran==2 // list 2A not applicable egen ${wave}cgns2b_dv=rmax(${wave}cgns2a0 ${wave}cgns2a1 ${wave}cgns2a2 ${wave}cgns2a3) if ${wave}nsran==2 replace ${wave}cgns2b_dv= -8 if ${wave}nsran==1 // list 2B not applicable foreach x in 1b 2b { recode ${wave}cgns`x'_dv . -9=-7 if ${wave}ivfio==2 recode ${wave}cgns`x'_dv . =-9 lab var ${wave}cgns`x'_dv "Cognitive ability: Number series `x': Number of correct items" lab def ${wave}cgns`x'_dv -9 "missing" -8 "inapplicable" -7"proxy" -2"refused", replace lab def ${wave}cgns`x'_dv 0"no item answered correctly" 3"all items answered correctly", add lab val ${wave}cgns`x'_dv ${wave}cgns`x'_dv fre ${wave}cgns`x'_dv } // generate total score: set 1 a+b and set 2 a+b foreach x in 1 2 { gen ${wave}cgns`x'sc6_dv=-9 replace ${wave}cgns`x'sc6_dv=(${wave}cgns`x'a_dv+${wave}cgns`x'b_dv) if ${wave}cgns`x'a_dv>=0 & ${wave}cgns`x'b_dv>=0 replace ${wave}cgns`x'sc6_dv=-8 if ${wave}cgns`x'a_dv==-8 & ${wave}cgns`x'b_dv==-8 replace ${wave}cgns`x'sc6_dv=-7 if ${wave}ivfio==2 lab def ${wave}cgns`x'sc6_dv -9"missing" -8"inapplicable" -7"proxy", replace lab def ${wave}cgns`x'sc6_dv 0"no correct answers" 6"all answers correct", add lab val ${wave}cgns`x'sc6_dv ${wave}cgns`x'sc6_dv lab var ${wave}cgns`x'sc6_dv "Cognitive ability: Number series: Set `x' A+B total score" } // HRS10 Score. gen ${wave}cgns1sc10_dv=-9 replace ${wave}cgns1sc10_dv=409 if ${wave}cgns1a_dv==0 & ${wave}cgns1b_dv==0 replace ${wave}cgns1sc10_dv=429 if ${wave}cgns1a_dv==0 & ${wave}cgns1b_dv==1 replace ${wave}cgns1sc10_dv=462 if ${wave}cgns1a_dv==0 & ${wave}cgns1b_dv==2 replace ${wave}cgns1sc10_dv=484 if ${wave}cgns1a_dv==0 & ${wave}cgns1b_dv==3 replace ${wave}cgns1sc10_dv=488 if ${wave}cgns1a_dv==1 & ${wave}cgns1b_dv==0 replace ${wave}cgns1sc10_dv=501 if ${wave}cgns1a_dv==1 & ${wave}cgns1b_dv==1 replace ${wave}cgns1sc10_dv=513 if ${wave}cgns1a_dv==1 & ${wave}cgns1b_dv==2 replace ${wave}cgns1sc10_dv=524 if ${wave}cgns1a_dv==1 & ${wave}cgns1b_dv==3 replace ${wave}cgns1sc10_dv=518 if ${wave}cgns1a_dv==2 & ${wave}cgns1b_dv==0 replace ${wave}cgns1sc10_dv=528 if ${wave}cgns1a_dv==2 & ${wave}cgns1b_dv==1 replace ${wave}cgns1sc10_dv=536 if ${wave}cgns1a_dv==2 & ${wave}cgns1b_dv==2 replace ${wave}cgns1sc10_dv=546 if ${wave}cgns1a_dv==2 & ${wave}cgns1b_dv==3 replace ${wave}cgns1sc10_dv=536 if ${wave}cgns1a_dv==3 & ${wave}cgns1b_dv==0 replace ${wave}cgns1sc10_dv=546 if ${wave}cgns1a_dv==3 & ${wave}cgns1b_dv==1 replace ${wave}cgns1sc10_dv=558 if ${wave}cgns1a_dv==3 & ${wave}cgns1b_dv==2 replace ${wave}cgns1sc10_dv=570 if ${wave}cgns1a_dv==3 & ${wave}cgns1b_dv==3 gen ${wave}cgns2sc10_dv=-9 replace ${wave}cgns2sc10_dv=413 if ${wave}cgns2a_dv==0 & ${wave}cgns2b_dv==0 replace ${wave}cgns2sc10_dv=435 if ${wave}cgns2a_dv==0 & ${wave}cgns2b_dv==1 replace ${wave}cgns2sc10_dv=465 if ${wave}cgns2a_dv==0 & ${wave}cgns2b_dv==2 replace ${wave}cgns2sc10_dv=485 if ${wave}cgns2a_dv==0 & ${wave}cgns2b_dv==3 replace ${wave}cgns2sc10_dv=489 if ${wave}cgns2a_dv==1 & ${wave}cgns2b_dv==0 replace ${wave}cgns2sc10_dv=503 if ${wave}cgns2a_dv==1 & ${wave}cgns2b_dv==1 replace ${wave}cgns2sc10_dv=514 if ${wave}cgns2a_dv==1 & ${wave}cgns2b_dv==2 replace ${wave}cgns2sc10_dv=525 if ${wave}cgns2a_dv==1 & ${wave}cgns2b_dv==3 replace ${wave}cgns2sc10_dv=519 if ${wave}cgns2a_dv==2 & ${wave}cgns2b_dv==0 replace ${wave}cgns2sc10_dv=529 if ${wave}cgns2a_dv==2 & ${wave}cgns2b_dv==1 replace ${wave}cgns2sc10_dv=537 if ${wave}cgns2a_dv==2 & ${wave}cgns2b_dv==2 replace ${wave}cgns2sc10_dv=547 if ${wave}cgns2a_dv==2 & ${wave}cgns2b_dv==3 replace ${wave}cgns2sc10_dv=537 if ${wave}cgns2a_dv==3 & ${wave}cgns2b_dv==0 replace ${wave}cgns2sc10_dv=549 if ${wave}cgns2a_dv==3 & ${wave}cgns2b_dv==1 replace ${wave}cgns2sc10_dv=567 if ${wave}cgns2a_dv==3 & ${wave}cgns2b_dv==2 replace ${wave}cgns2sc10_dv=584 if ${wave}cgns2a_dv==3 & ${wave}cgns2b_dv==3 foreach x in 1 2 { replace ${wave}cgns`x'sc10_dv=-8 if ${wave}cgns`x'a_dv==-8 & ${wave}cgns`x'b_dv==-8 replace ${wave}cgns`x'sc10_dv=-7 if ${wave}ivfio==2 lab def ${wave}cgns`x'sc10_dv -9 "missing" -8 "inapplicable" -7 "proxy", replace lab val ${wave}cgns`x'sc10_dv ${wave}cgns`x'sc10_dv lab var ${wave}cgns`x'sc10_dv "Cognitive ability: Number series: Set `x': HRS10 score" } // rename interviewer observations clonevar ${wave}cgivns11_dv= ${wave}nscont11 lab var ${wave}cgivns11_dv "Cognitive ability: hh member present during Number series" clonevar ${wave}cgivns12_dv= ${wave}nscont12 lab var ${wave}cgivns12_dv "Cognitive ability: non-hh member present during Number series" clonevar ${wave}cgivns13_dv= ${wave}nscont13 lab var ${wave}cgivns13_dv "Cognitive ability: no-one present during Number series" for var ${wave}nscont11 ${wave}nscont12 ${wave}nscont13: replace X=. if X<0 egen ${wave}cgivns1_dv=group(${wave}nscont11 ${wave}nscont12 ${wave}nscont13) replace ${wave}cgivns1_dv=${wave}cgivns11_dv if ${wave}cgivns1_dv==. lab def ${wave}cgivns1_dv -9 "missing" -8 "inapplicable" -7"proxy" -2"refused" -1 "don't know", replace lab def ${wave}cgivns1_dv 1"no-one else present", add lab def ${wave}cgivns1_dv 2"hh member present", add lab def ${wave}cgivns1_dv 3"non-hh member present", add lab def ${wave}cgivns1_dv 4"hh & non-hh member present", add lab val ${wave}cgivns1_dv ${wave}cgivns1_dv lab var ${wave}cgivns1_dv "Cognitive ability: anyone present during Number series" forvalues x=1(1)16 { clonevar ${wave}cgivns2`x'_dv= ${wave}nscont2`x' lab var ${wave}cgivns2`x'_dv "Cognitive ability: pno `x' present during Number series" } clonevar ${wave}cgivns3_dv= ${wave}nscont3 lab var ${wave}cgivns3_dv "Cognitive ability: Other person helped w Number series" forvalues x=1(1)8 { clonevar ${wave}cgivnsref`x'_dv= ${wave}nsstop`x' } clonevar ${wave}cgivnsref97_dv= ${wave}nsstop97 lab var ${wave}cgivnsref1_dv "Cognitive ability: refused Number series: understanding of task" lab var ${wave}cgivnsref2_dv "Cognitive ability: refused Number series: physical disability" lab var ${wave}cgivnsref3_dv "Cognitive ability: refused Number series: attention problems" lab var ${wave}cgivnsref4_dv "Cognitive ability: refused Number series: insufficient time" lab var ${wave}cgivnsref5_dv "Cognitive ability: refused Number series: anxiety/discomfort" lab var ${wave}cgivnsref6_dv "Cognitive ability: refused Number series: others present" lab var ${wave}cgivnsref7_dv "Cognitive ability: refused Number series: R does not want to do task" lab var ${wave}cgivnsref8_dv "Cognitive ability: refused Number series: language problems" lab var ${wave}cgivnsref97_dv "Cognitive ability: refused Number series: other problem" order pidp ${wave}cgns1a1_dv ${wave}cgns1a*_dv ${wave}cgns1a_dv ${wave}cgns1b_dv ${wave}cgns2a1_dv /// ${wave}cgns2a*_dv ${wave}cgns2a_dv ${wave}cgns2b_dv ${wave}cgns1sc6_dv ${wave}cgns1sc10_dv /// ${wave}cgns2sc6_dv ${wave}cgns2sc10_dv ${wave}cgivns1*_dv ${wave}cgivns1_dv ${wave}cgivns2*_dv /// ${wave}cgivns3_dv ${wave}cgivnsref*_dv isvar ${wave}cgns1a1_dv ${wave}cgns1a*_dv ${wave}cgns1a_dv ${wave}cgns1b_dv ${wave}cgns2a1_dv /// ${wave}cgns2a*_dv ${wave}cgns2a_dv ${wave}cgns2b_dv ${wave}cgns1sc6_dv ${wave}cgns1sc10_dv /// ${wave}cgns2sc6_dv ${wave}cgns2sc10_dv ${wave}cgivns1*_dv ${wave}cgivns1_dv ${wave}cgivns2*_dv /// ${wave}cgivns3_dv ${wave}cgivnsref*_dv foreach x in `r(varlist)' { replace `x'=-7 if ${wave}ivfio==2 } keep pidp ${wave}cgns1a_dv ${wave}cgns1b_dv ${wave}cgns2a_dv ${wave}cgns2b_dv ${wave}cgns1sc6_dv /// ${wave}cgns1sc10_dv ${wave}cgns2sc6_dv ${wave}cgns2sc10_dv ${wave}cgivns1_dv lab dat "Cognitive ability: Number series derived variables" save "${outpath}/${wave}cgns_dv", replace }