/****************************************************************************************************** ** This program updates the following education variables variable name in variable name the program in the NLS ------------------------------------------------------ DATE_LEFT_SCH CVC_HS_LEFT_DATE HGC CVC_HS_LEFT_HGC HGA CVC_HS_LEFT_HGA The conditions to be met to compute these variables are as follows: HGC>=12 or received H.S. Diploma or age at last interview is greater than 20 or R is in college.; Computing the Date Left High School - DATE_LEFT_SCH: Three definitions: (1) The date R received H.S. Dimploma - DATE_RECD_HSD (2) The date R completed grade HGC - DATE_COMP_HGC (3) The date R stopped attending school - DATE_SCH_STOP DATE_LEFT_SCH is computed as follows: Use (1), if (1) is not available then use (2), and if (2) is also not available then use (3) ******** this program uses the same list of input variables as Date Received Diploma or Degree ******** ** IN THE PROCESS TO GENERATE CVC_HGC_EVER, THE FOLLOWING VARIABLES WERE CREATED AND THEY ARE USED HERE: ** ** Variable name Variable label ** in program ** ------------------------------------------------------------------------------------------------- hgaloop HIGHEST GRADE ATTENDED FROM THE LOOPS 2019 grsurvFr1-grsurvFr18 HIGHEST PRE-COLLEGE GRADE COMPLETED IN PREVIOUS ROUNDS grsurvF HIGHEST PRE-COLLEGE GRADE COMPLETED 2019 cdtgd CVC_GED cdths CVC_HS_DIPLOMA stpcm11-stpcm15 MONTH STOP THE 1ST ENROLLMENT IN EACH SCHOOL 2019 stpcm21 MONTH STOP THE 2ND ENROLLMENT IN EACH SCHOOL 2019 grsurv_cvc CVC_HGC_EVER encat CV_ENROLLSTAT 2019 attsch DUMMY TO INDICATE R GOES TO GRADE 1 THROUGH 12, 2019 ** IN THE PROCESS TO GENERATE CVC_HS_LEFT_DATE in the last round, THE FOLLOWING VARIABLES WEWE CREATED AND THEY ARE USED HERE: ** ** Variable name Variable label ** in program ** ------------------------------------------------------------------------------------------------- hga_rnd THE ROUND THAT R GOES TO THE GRADE=CVC_HS_LEFT_HGA_2017 date_comp_hgc THE MONTH THAT R COMP THE GRADE=CVC_HS_LEFT_HGC_2017 date_sch_stop THE LAST MONTH R GOES TO 1-12 GRADE IN ROUND 1 THROUGH ROUND 18 attsch2-attsch18 DUMMY TO INDICATE R GOES TO GRADE 1 THROUGH 12 IN PREVIOUS ROUNDS date_left_trs THE LAST MONTH R ATTEND SCHOOL IN THE TRANSCRIPT SURVEY ******************************************************************************************************/ ** Defining all arrays used in the program; array e285 (*) e3500r1 e2857r2-e2857r19; array hgal (*) hgaloopr1-hgaloopr18 hgaloop; array RNI (*) RNIr1-RNIr19; * no RNIr1; array gra (*) hgcr1 hgcYr2-hgcYr18 graug; array grsF (*) grsurvFr1-grsurvFr18 grsurvF; array doic (*) doicmr1-doicmr19; array dli (*) dli1-dli19; array enc (*) encatr1-encatr18 encat; array att (*) attsch1-attsch18 attsch; array stpcm (*) stpcm11-stpcm15 stpcm21; array scode (*) scoder19_1-scoder19_5 scoder19_1; ***** Computing date of birth in continuous month scheme (cmb).; cmb=((doby-1980)*12)+dobm; ***** Computing DLI round; do i=1 to dim(e285); do j=1 to i-1; if e285(j)~=-5 then dli(i)=j; end; if e285(i)~=-5 then do; ageLI=round((doic(i)-cmb)/12); encatLI=enc(i); DLI_RND=i; end; if RNI(i) in (80, 98) then DECEASED=1; end; if cdths>-4 then HSD=1; if cdths=-4 then HSD=0; if cdtgd>-4 then GED=1; if cdtgd=-4 then GED=0; ***** cv creation criteria; if cdths>-4 or grsurv_cvc>=12 or encatLI in (4,5,6,7,9,10,11) or deceased=1 or ageLI>20 then created=1; ** when to use school stop dates; if encatLI in (4,5,6,7,9,10,11) or deceased=1 or ageLI>20 then usestop=1; ***** Imputing e2857; if 012 then do; e2857r19=12+e2857r19; imp1=13; end; ***** Computing Highest Grade Completed: - HGCa, HGC.; HGC=hs_lft_hgc_r18; if e3112r18=-5 & e3877a1r19 not in (0, -5) & HGC ne 12 & (attsch=1 or scoder19_1 in (-1,-2,-3) or scoder19_2 in (-1,-2,-3) or scoder19_3 in (-1,-2,-3) or scoder19_4 in (-1,-2,-3) or scoder19_5 in (-1,-2,-3)) then do ; HGC=grsurvF; end; do i=1 to dim(e285); if e285(i)~=-5 then HGCa=gra(i); end; do i=1 to dim(grsF); if grsF(i)=HGC then do; HGC_rnd=i; i=dim(grsF); end; end; ***** Computing Highest grade attended in school: HGA.; HGA=hs_lft_hga_r18; loc_hga=loc_hga_r18; if HGA=-4 then HGA=hga_old_r18; if e3112r18=-5 & e3877a1r19 not in (0, -5) & HGA ne 12 & (attsch=1 or scoder19_1 in (-1,-2,-3) or scoder19_2 in (-1,-2,-3) or scoder19_3 in (-1,-2,-3) or scoder19_4 in (-1,-2,-3) or scoder19_5 in (-1,-2,-3)) then do ; if e2857r19=hgaloop & (0<=e2857r19<=12 | e2857r19=95) & (e2857r19>HGA | HGA=95) then do; HGA=e2857r19; LOC_HGA=2; hga_rnd=19; end; if e2857r19~=hgaloop then do; if (0<=hgaloop<=12 | hgaloop=95) & 95>e2857r19>12 & (hgaloop>HGA | HGA=95) then do; HGA=hgaloop; if grsurvF<=12 & grsurvF>hgaloop then HGA=grsurvF; LOC_HGA=3; hga_rnd=19; end; if 95>hgaloop>12 & (0<=e2857r19<=12 | e2857r19=95) & (e2857r19>HGA | HGA=95) then do; HGA=e2857r19; if grsurvF<=12 & grsurvF>e2857r19 then HGA=grsurvF; LOC_HGA=4; hga_rnd=19; end; if (0<=hgaloop<=12|hgaloop=95) & (0<=e2857r19<=12|e2857r19=95) then do; if grsurvF>hgaloop & grsurvF<=e2857r19 & (e2857r19>HGA | HGA=95) then do; HGA=e2857r19; LOC_HGA=5; hga_rnd=19; end; if grsurvF<=hgaloop & grsurvF>e2857r19 & (hgaloop>HGA | HGA=95) then do; HGA=hgaloop; LOC_HGA=6; hga_rnd=19; end; if grsurvF=hgaloop & grsurvFHGA | HGA=95) then do; HGA=e2857r19; LOC_HGA=7; hga_rnd=19; end; if grsurvF=e2857r19 & grsurvFHGA | HGA=95) then do; HGA=hgaloop; LOC_HGA=8; hga_rnd=19; end; if (0<=grsurvFhgaloop>=0 & grsurvF>e2857r19>=0) then do; if abs(hgaloop-grsurvF)HGA | HGA=95) then do; HGA=hgaloop; LOC_HGA=9; hga_rnd=19; end; if abs(hgaloop-grsurvF)>abs(e2857r19-grsurvF) & (e2857r19>HGA | HGA=95) then do; HGA=e2857r19; LOC_HGA=10; hga_rnd=19; end; end; if grsurvF<0 then do; if max(hgaloop, e2857r19)>HGA | HGA=95 then HGA= max(hgaloop, e2857r19); LOC_HGA=18; hga_rnd=19; end; end; if hgaloop<0 & (0<=e2857r19<=12|e2857r19=95) & (e2857r19>HGA | HGA=95) then do; HGA=e2857r19; LOC_HGA=11; hga_rnd=19; end; if (0<=hgaloop<=12|hgaloop=95) & e2857r19<0 & (hgaloop>HGA | HGA=95) then do; HGA=hgaloop; LOC_HGA=12; hga_rnd=19; end; end; end; ** Computing Date Left High School (1) - DATE_RECD_HSD; DATE_RECD_HSD=cdths; ** Computing Date Left High School (2) - DATE_COMP_HGC, starting from the same var created in last round; if DATE_COMP_HGC=-4 & grsurv_cvc<12 then never_comp_12=1; ** Computing Date Left High School (2) - DATE_SCH_STOP, starting from the same var created in last round; do i=1 to dim(scode); if scode(i) in (1,2,3) then do; if stpcm(i)>0 & DATE_SCH_STOP-4 & DATE_LEFT_SCH<0 then do; DATE_LEFT_SCH=DATE_RECD_HSD; LOC_DT=1; end; if DATE_COMP_HGC>-4 & DATE_LEFT_SCH<0 then do; DATE_LEFT_SCH=DATE_COMP_HGC; LOC_DT=2; end; if DATE_SCH_STOP>-4 & DATE_LEFT_SCH<0 & DECEASED=1 then do; DATE_LEFT_SCH=DATE_SCH_STOP; LOC_DT=3.1; end; if DATE_SCH_STOP>-4 & DATE_LEFT_SCH<0 & encatLI in (4,5,6,7,9,10,11) then do; DATE_LEFT_SCH=DATE_SCH_STOP; LOC_DT=3.2; end; if DATE_SCH_STOP>-4 & DATE_LEFT_SCH<0 & ageLI>20 then do; DATE_LEFT_SCH=DATE_SCH_STOP; LOC_DT=3.3; end; if DATE_LEFT_TRS>-4 & DATE_LEFT_SCH<0 then do; DATE_LEFT_SCH=DATE_LEFT_TRS; LOC_DT=4.1; end; if DATE_LEFT_TRS>-4 & DATE_LEFT_SCH>-4 & LOC_DT in (3.1,3.2,3.3) & DATE_LEFT_TRS-4 & DATE_LEFT_SCH<0 & usestop=1 then do; DATE_LEFT_SCH=sch_stop_r1; LOC_DT=5; end; if DATE_SCH_STOP>-4 & DATE_LEFT_SCH=-4 & ageLI>20 then LOC_DT_a=1; if DATE_SCH_STOP>-4 & DATE_LEFT_SCH=-3 & ageLI>20 then LOC_DT_a=2; if DATE_LEFT_SCH=-4 & GED=1 then LOC_DT_b=1; end; age_jan19=round((469-cmb)/12); cdob=(doby-1980)*12 + dobm; if date_left_sch>0 then age_left=date_left_sch-cdob; if created ne 1 then do; date_left_sch_old=date_left_sch; hga_old=hga; hgc_old=hgc; date_left_sch=-4; hga=-4; hgc=-4; end; **** flags; flag20=-4; if HGA>HGC then flag20=-1; if HGA=HGC then flag20=0; if 12hgc+1 & hgc>0 & 00 & date_left_sch ne cdths & created=1 then flag50=1;