******************************************************************** * File HALCyon body size syntax_NSHD.do * BY Rebecca Hardy, MRC Unit for Lifelong Health and Ageing at UCL * FOR HALCyon cross-cohort collaboration (funded by the New Dynamics of Ageing (RES-353-25-0001)) * DATASET MRC National Survey of Health and Development * Date Created 12/05/2010 * last modified 12/05/2010 * PURPOSE Recodes and derives body size variables for use in cross-cohort analyses ************************************************************************************* # delimit; set more off; /*current body size*/ mvdecode bmi99u ht99u, mv(9999,7777) ; mvdecode abc hipc, mv(999, 999.9) ; replace abc=. if abc<1 ; replace hipc=. if hipc<1 ; /*birth weight*/ mvdecode mbwtu, mv(9999) ; gen mbwtkg=mbwtu/1000 ; /*earlier adult body size*/ mvdecode bmi66u bmi72u bmi82u bmi89u ht66u ht82u ht89u, mv(9999,7777,9997,9998) ; /*compute z-scores and z-score velocities - separately by sex*/ egen bmi66m=std(bmi66u) if sex==1 ; egen bmi66f=std(bmi66u) if sex==2 ; gen bmi66z=. ; replace bmi66z=bmi66m if sex==1 ; replace bmi66z=bmi66f if sex==2 ; egen bmi72m=std(bmi72u) if sex==1 ; egen bmi72f=std(bmi72u) if sex==2 ; gen bmi72z=. ; replace bmi72z=bmi72m if sex==1 ; replace bmi72z=bmi72f if sex==2 ; egen bmi82m=std(bmi82u) if sex==1 ; egen bmi82f=std(bmi82u) if sex==2 ; gen bmi82z=. ; replace bmi82z=bmi82m if sex==1 ; replace bmi82z=bmi82f if sex==2 ; egen bmi89m=std(bmi89u) if sex==1 ; egen bmi89f=std(bmi89u) if sex==2 ; gen bmi89z=. ; replace bmi89z=bmi89m if sex==1 ; replace bmi89z=bmi89f if sex==2 ; egen bmi99m=std(bmi99u) if sex==1 ; egen bmi99f=std(bmi99u) if sex==2 ; gen bmi99z=. ; replace bmi99z=bmi99m if sex==1 ; replace bmi99z=bmi99f if sex==2 ; /*velocities*/ gen bmi6672=(bmi72u-bmi66u)/6 ; egen bmi6672m=std(bmi6672) if sex==1 ; egen bmi6672f=std(bmi6672) if sex==2 ; gen bmi6672z=. ; replace bmi6672z=bmi6672m if sex==1 ; replace bmi6672z=bmi6672f if sex==2 ; gen bmi7282=(bmi82u-bmi72u)/10 ; egen bmi7282m=std(bmi7282) if sex==1 ; egen bmi7282f=std(bmi7282) if sex==2 ; gen bmi7282z=. ; replace bmi7282z=bmi7282m if sex==1 ; replace bmi7282z=bmi7282f if sex==2 ; gen bmi8289=(bmi89u-bmi82u)/7 ; egen bmi8289m=std(bmi8289) if sex==1 ; egen bmi8289f=std(bmi8289) if sex==2 ; gen bmi8289z=. ; replace bmi8289z=bmi8289m if sex==1 ; replace bmi8289z=bmi8289f if sex==2 ; gen bmi8999=(bmi99u-bmi89u)/10 ; egen bmi8999m=std(bmi8999) if sex==1 ; egen bmi8999f=std(bmi8999) if sex==2 ; gen bmi8999z=. ; replace bmi8999z=bmi8999m if sex==1 ; replace bmi8999z=bmi8999f if sex==2 ; /*velocities to match with Boyd Orr data 20-43, 43-current (53)*/ gen bmi6689=(bmi89u-bmi66u)/23 ; egen bmi6689m=std(bmi6689) if sex==1 ; egen bmi6689f=std(bmi6689) if sex==2 ; gen bmi6689z=. ; replace bmi6689z=bmi6689m if sex==1 ; replace bmi6689z=bmi6689f if sex==2 ; /*age at which first overweight*/ gen owt66=bmi66u ; recode owt66 (min/24.9999=0) (25/max=1) ; gen owt72=bmi72u ; recode owt72 (min/24.9999=0) (25/max=1) ; gen owt82=bmi82u ; recode owt82 (min/24.9999=0) (25/max=1) ; gen owt89=bmi89u ; recode owt89 (min/24.9999=0) (25/max=1) ; gen owt99=bmi99u ; recode owt99 (min/24.9999=0) (25/max=1) ; /*age at first overweight 26-52 years*/ gen ageowt=. ; replace ageowt=0 if owt99==0 ; replace ageowt=1 if owt99==1 ; replace ageowt=2 if owt89==1 ; replace ageowt=3 if owt82==1 ; replace ageowt=4 if owt72==1 ;