/ Creates w_nbrcoh_dv // INPUT FILE - w_indresp.dta // OUTPUT FILE - w_nbrcoh_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 f 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" } if ${waveno}==21 | ${waveno}==24 { use "${inpath}/${wave}indresp${dta}", clear } if ${waveno}==30 { use "${inpath}/${wave}hhresp${dta}", clear } drop ${wave}nbrcoh_dv drop ${wave}nbrcohdk_dv /* CREATES SAMPSON/RAUDENBUSH NEIGHBOURHOOD SOCIAL COHESION SCALE AND TWO OF ITS SUBSCALES Sampson, R. J., S. W. Raudenbush, and F. Earls. 1997. Neighborhoods and violent crime: A multilevel study of collective efficacy. Science 277.5328: 918–924. */ gen ${wave}nbrcohdk_dv=0 forvalues v=1(1)4 { replace ${wave}nbrcohdk_dv=${wave}nbrcohdk_dv+1 if ${wave}nbrcoh`v'==-1 } replace ${wave}nbrcohdk_dv=-9 if inlist(${wave}nbrcoh1,-9,-2) & inlist(${wave}nbrcoh2,-9,-2) & inlist(${wave}nbrcoh3,-9,-2) & inlist(${wave}nbrcoh4,-9,-2) replace ${wave}nbrcohdk_dv=-7 if ${wave}ivfio==2 lab def ${wave}nbrcohdk_dv -7"proxy respondent" -9"missing" 0"none" 4"all", replace lab val ${wave}nbrcohdk_dv ${wave}nbrcohdk_dv lab var ${wave}nbrcohdk_dv "Neighbourhood social cohesion: Total number of don't knows" // Compute summed score for var ${wave}nbrcoh1 ${wave}nbrcoh2 ${wave}nbrcoh3 ${wave}nbrcoh4: recode X (-12/-1=.) for var ${wave}nbrcoh1 ${wave}nbrcoh2 ${wave}nbrcoh3: omscore X // need to do something about missing values. Use mean as impute if only 1/4 item missing egen nmiss1=rmiss(rr_${wave}nbrcoh1 rr_${wave}nbrcoh2 rr_${wave}nbrcoh3 ${wave}nbrcoh4) egen ${wave}nbrcoh_=rmean(rr_${wave}nbrcoh1 rr_${wave}nbrcoh2 rr_${wave}nbrcoh3 ${wave}nbrcoh4) if nmiss1<=1 for var rr_${wave}nbrcoh1 rr_${wave}nbrcoh2 rr_${wave}nbrcoh3 ${wave}nbrcoh4: replace X=int(${wave}nbrcoh_) if X==. egen ${wave}nbrcoh_dv=rsum(rr_${wave}nbrcoh1 rr_${wave}nbrcoh2 rr_${wave}nbrcoh3 ${wave}nbrcoh4) if nmiss1<=1 recode ${wave}nbrcoh_dv (. =-9 ) recode ${wave}nbrcoh_dv (-9=-7) if ${wave}ivfio==2 recode ${wave}nbrcoh_dv (3=4) // assert minimum of 4 where one item was not reported and all others were reported as 1. alpha rr_${wave}nbrcoh1 rr_${wave}nbrcoh2 rr_${wave}nbrcoh3 ${wave}nbrcoh4 if ${wave}nbrcoh_dv>=4 & ${wave}nbrcoh_dv <=20 local alpha=round(r(alpha),.02) lab var ${wave}nbrcoh_dv "Neighbourhood Social Cohesion,(α= `alpha')" lab def ${wave}nbrcoh_dv -9"missing or wild" -7"proxy respondent" 4"lowest cohesion" 20"highest cohesion", replace lab val ${wave}nbrcoh_dv ${wave}nbrcoh_dv keep ${wave}hidp pidp ${wave}nbrcoh_dv ${wave}nbrcoh_dv ${wave}nbrcohdk_dv if ${waveno}==21 | ${waveno}==24{ drop ${wave}hidp } if ${waveno}==30{ drop pidp } save ${outpath}/${wave}nbrcoh_dv, replace