// Creates w_agegr5_dv, w_agegr10_dv and w_agegr13_dv - Age group categories // INPUT FILE - w_indall.dta // OUTPUT FILE - w_agegr_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" // INCLUDE WAVE LETTERS FOR THE WAVES NEEDED global waves a b c d e f g h i j k l **** Don’t make changes after this point **** foreach w of global waves { 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}indall${dta}", clear drop ${wave}agegr* label drop _all if ${cohort}== 1 { cap gen ${wave}aivfio=. cap gen ${wave}ivfio=. } * Age Groups: 5 year intervals 0-70+ recode ${wave}age_dv (0/4=1)(5/9=2)(10/14=3)(15/19=4)(20/24=5)(25/29=6)(30/34=7)(35/39=8) /// (40/44=9)(45/49=10)(50/54=11)(55/59=12)(60/64=13)(65/69=14)(70/120=15) (-9/-1=-9), gen(${wave}agegr5_dv) label var ${wave}agegr5_dv "Age group (age_dv): 5 year intervals" label define ${wave}agegr5_dv /// -9 "Missing or wild" /// 1 "0-4 years old" /// 2 "5-9 years old" /// 3 "10-14 years old" /// 4 "15-19 years old" /// 5 "20-24 years old" /// 6 "25-29 years old" /// 7 "30-34 years old" /// 8 "35-39 years old" /// 9 "40-44 years old" /// 10 "45-49 years old" /// 11 "50-54 years old" /// 12 "55-59 years old" /// 13 "60-64 years old" /// 14 "65-69 years old" /// 15 "70 years or older" label values ${wave}agegr5_dv ${wave}agegr5_dv table ${wave}agegr5_dv, c(mean ${wave}age_dv) * Age Groups: 10 year intervals 0-70+ recode ${wave}age_dv (0/9=1)(10/19=2)(20/29=3)(30/39=4)(40/49=5)(50/59=6)(60/69=7)(70/120=8) (-9/-1=-9), gen(${wave}agegr10_dv) replace ${wave}agegr10_dv=1 if (${wave}age_dv<0 & ${wave}ivfio==24) /* children under 10 */ label var ${wave}agegr10_dv "Age group (age_dv): 10 year intervals" label define ${wave}agegr10_dv /// -9 "Missing or wild" /// 1 "0-9 years old" /// 2 "10-19 years old" /// 3 "20-29 years old" /// 4 "30-39 years old" /// 5 "40-49 years old" /// 6 "50-59 years old" /// 7 "60-69 years old" /// 8 "70 years or older" label values ${wave}agegr10_dv ${wave}agegr10_dv table ${wave}agegr10_dv, c(mean ${wave}age_dv) * Age Groups: 13 categories (LFS) recode ${wave}age_dv (0/15=1)(16/17=2)(18/19=3)(20/24=4)(25/29=5)(30/34=6)(35/39=7)(40/44=8) /// (45/49=9)(50/54=10)(55/59=11)(60/64=12)(65/120=13) (-9/-1=-9), gen(${wave}agegr13_dv) replace ${wave}agegr13_dv=1 if ((${wave}age_dv<0 & inlist(${wave}ivfio,21,22,23,24,74))|(${wave}age_dv<0 & (${wave}adresp15_dv>0 & ${wave}adresp15_dv<.))) label var ${wave}agegr13_dv "Age group (age_dv): 13 categories" label define ${wave}agegr13_dv /// -9 "Missing or wild" /// 1 "0-15 years old" /// 2 "16-17 years old" /// 3 "18-19 years old" /// 4 "20-24 years old" /// 5 "25-29 years old" /// 6 "30-34 years old" /// 7 "35-39 years old" /// 8 "40-44 years old" /// 9 "45-49 years old" /// 10 "50-54 years old" /// 11 "55-59 years old" /// 12 "60-64 years old" /// 13 "65 years or older" label values ${wave}agegr13_dv ${wave}agegr13_dv table ${wave}agegr13_dv, c(mean ${wave}age_dv) // Edits based on ivfio for respondents with funny age_dv values recode ${wave}agegr5_dv (1 2 3=-9) if inlist(${wave}ivfio,1,2,3,7,10,11,15) recode ${wave}agegr10_dv (1 =-9) if inlist(${wave}ivfio,1,2,3,7,10,11,15) recode ${wave}agegr10_dv (1 =-9) if inlist(${wave}ivfio,1,2,3,7,10,11,15) * Target variables keep ${wave}hidp ${wave}pno ${wave}agegr13_dv ${wave}agegr5_dv ${wave}agegr10_dv sort ${wave}hidp ${wave}pno lab dat "Age groups (age_dv), derived" save "${outpath}/${wave}agegr_dv", replace }