Appendix 1: Education Variable Creation

Return to Table of Contents


Enrollment Status, Highest Grade Completed, and Highest Degree Received

Variables Created:

Variables Used

Name in Program

Question Name on CD

 

Name in Program

Question Name on CD

 

Name in Program

Question Name on CD

Round 1   Round 6 cont'd     Round 8 cont'd  
e3500_r1 YSCH-3500   t70003_r6 YTRN-7000.03   e10099112m YSCH-10099.01.01.02~M
e5000_r1 YSCH-5000   t70004_r6 YTRN-7000.04   e10099112y YSCH-10099.01.01.02~Y
e11700_r1 YSCH-11700   t70005_r6 YTRN-7000.05   e10099113m YSCH-10099.01.01.03~M
e26700_r1 YSCH-26700   doicm_r6 CV_INTERVIEW_CMONTH   e10099113y YSCH-10099.01.01.03~Y
e28200_r1 YSCH-28200   encat_r6 CV_ENROLLSTAT   e10099114m YSCH-10099.01.01.04~M
t70001_r1 YTRN-7000.01   GRSURV_r6 CV_HGC_EVER   e10099114y YSCH-10099.01.01.04~Y
t70002_r1 YTRN-7000.02   GRJUNE_r6 CV_HGC_YR   e10099211m YSCH-10099.02.01.01~M
t70003_r1 YTRN-7000.03   DEGSURV_r6 CV_HIGHEST_DEGREE_EVER   e10099211y YSCH-10099.02.01.01~Y
encat_r1 CV_ENROLLSTAT   DEGJUNE_r6 CV_HIGHEST_DEGREE_YR   e10099212m YSCH-10099.02.01.02~M
GRSURV_r1 CV_HGC_EVER         e10099212y YSCH-10099.02.01.02~Y
DEGSURV_r1 CV_HIGHEST_DEGREE_EVER   Round 7     e10099213m YSCH-10099.02.01.03~M
doicm_r1 CV_INTERVIEW_CMONTH   e2857_r7 YSCH-2857   e10099213y YSCH-10099.02.01.03~Y
      e3112_r7 YSCH-3112   e11700 YSCH-11700
Round 2     e3878_r7 YSCH-3878   e13300 YSCH-13300
e2857_r2 YSCH-2857   e11700_r7 YSCH-11700   e273371 YSCH-27337.01
e3112_r2 YSCH-3112   t70001_r7 YTRN-7000.01   e273372 YSCH-27337.02
e3878_r2 YSCH-3878   t70002_r7 YTRN-7000.02   e273373 YSCH-27337.03
e11700_r2 YSCH-11700   t70003_r7 YTRN-7000.03   e273374 YSCH-27337.04
t70001_r2 YTRN-7000.01   t70004_r7 YTRN-7000.04   e273375 YSCH-27337.05
t70002_r2 YTRN-7000.02   t70005_r7 YTRN-7000.05   e234501 YSCH-23450.01
doicm_r2 CV_INTERVIEW_CMONTH   t70006_r7 YTRN-7000.06   e234502 YSCH-23450.02
encat_r2 CV_ENROLLSTAT   t70007_r7 YTRN-7000.07   e234503 YSCH-23450.03
GRSURV_r2 CV_HGC_EVER   doicm_r6 CV_INTERVIEW_CMONTH   t70001 YTRN-7000.01
GRJUNE_r2 CV_HGC_YR   encat_r6 CV_ENROLLSTAT   t70002 YTRN-7000.02
DEGSURV_r2 CV_HIGHEST_DEGREE_EVER   GRSURV_r6 CV_HGC_EVER   t70003 YTRN-7000.03
DEGJUNE_r2 CV_HIGHEST_DEGREE_YR   GRJUNE_r6 CV_HGC_YR   t70004 YTRN-7000.04
      DEGSURV_r6 CV_HIGHEST_DEGREE_EVER   t70005 YTRN-7000.05
Round 3     DEGJUNE_r6 CV_HIGHEST_DEGREE_YR   t70006 YTRN-7000.06
e2857_r3 YSCH-2857         t70007 YTRN-7000.07
e3112_r3 YSCH-3112   Round 8     PUBID PUBID
e3878_r3 YSCH-3878   e3103 YSCH-3103   intd SYMBOL!CURDATE~D
e11700_r3 YSCH-11700   e3104 YSCH-3104   intm SYMBOL!CURDATE~M
t70001_r3 YTRN-7000.01   e2806 YSCH-2806   inty SYMBOL!CURDATE~Y
t70002_r3 YTRN-7000.02   e2857 YSCH-2857      
t70003_r3 YTRN-7000.03   e2908 YSCH-2908   Round 8 roster data
t70004_r3 YTRN-7000.04   e3010 YSCH-3010   scode1 NEWSCHOOL_SCHCODE.01
doicm_r3 CV_INTERVIEW_CMONTH   e3061 YSCH-3061   scode2 NEWSCHOOL_SCHCODE.02
encat_r3 CV_ENROLLSTAT   e3112 YSCH-3112   scode3 NEWSCHOOL_SCHCODE.03
GRSURV_r3 CV_HGC_EVER   e3877 YSCH-3877   scode4 NEWSCHOOL_SCHCODE.04
GRJUNE_r3 CV_HGC_YR   e3877B YSCH-3877B   scode5 NEWSCHOOL_SCHCODE.05
DEGSURV_r3 CV_HIGHEST_DEGREE_EVER   e3878 YSCH-3878   strt11m NEWSCHOOL_START1.01~M
DEGJUNE_r3 CV_HIGHEST_DEGREE_YR   e841611 YSCH-8416.01.01   strt11y NEWSCHOOL_START1.01~Y
      e841612 YSCH-8416.01.02   strt12m NEWSCHOOL_START1.02~M
Round 4     e841621 YSCH-8416.02.01   strt12y NEWSCHOOL_START1.02~Y
e2857_r4 YSCH-2857   e841622 YSCH-8416.02.02   strt13m NEWSCHOOL_START1.03~M
e3112_r4 YSCH-3112   e841631 YSCH-8416.03.01   strt13y NEWSCHOOL_START1.03~Y
e3878_r4 YSCH-3878   e913111 YSCH-9131.01.01   strt14m NEWSCHOOL_START1.04~M
e11700_r4 YSCH-11700   e913112 YSCH-9131.01.02   strt14y NEWSCHOOL_START1.04~Y
t70001_r4 YTRN-7000.01   e913121 YSCH-9131.02.01   strt15m NEWSCHOOL_START1.05~M
t70002_r4 YTRN-7000.02   e913122 YSCH-9131.02.02   strt15y NEWSCHOOL_START1.05~Y
t70003_r4 YTRN-7000.03   e913131 YSCH-9131.03.01   strt21m NEWSCHOOL_START2.01~M
t70004_r4 YTRN-7000.04   e933511m YSCH-9335.01.01~M   strt21y NEWSCHOOL_START2.01~Y
doicm_r4 CV_INTERVIEW_CMONTH   e933511y YSCH-9335.01.01~Y   strt22m NEWSCHOOL_START2.02~M
encat_r4 CV_ENROLLSTAT   e933512m YSCH-9335.01.02~M   strt22y NEWSCHOOL_START2.02~Y
GRSURV_r4 CV_HGC_EVER   e933512y YSCH-9335.01.02~Y   strt31m NEWSCHOOL_START3.01~M
GRJUNE_r4 CV_HGC_YR   e933521m YSCH-9335.02.01~M   strt31y NEWSCHOOL_START3.01~Y
DEGSURV_r4 CV_HIGHEST_DEGREE_EVER   e933521y YSCH-9335.02.01~Y   stop11m NEWSCHOOL_STOP1.01~M
DEGJUNE_r4 CV_HIGHEST_DEGREE_YR   e933522m YSCH-9335.02.02~M   stop11y NEWSCHOOL_STOP1.01~Y
      e933522y YSCH-9335.02.02~Y   stop12m NEWSCHOOL_STOP1.02~M
Round 5     e933531m YSCH-9335.03.01~M   stop12y NEWSCHOOL_STOP1.02~Y
e2857_r5 YSCH-2857   e933531y YSCH-9335.03.01~Y   stop13m NEWSCHOOL_STOP1.03~M
e3112_r5 YSCH-3112   e938511 YSCH-9385.01.01   stop13y NEWSCHOOL_STOP1.03~Y
e3878_r5 YSCH-3878   e938512 YSCH-9385.01.02   stop14m NEWSCHOOL_STOP1.04~M
e11700_r5 YSCH-11700   e938521 YSCH-9385.02.01   stop14y NEWSCHOOL_STOP1.04~Y
t70001_r5 YTRN-7000.01   e938522 YSCH-9385.02.02   stop15m NEWSCHOOL_STOP1.05~M
t70002_r5 YTRN-7000.02   e938531 YSCH-9385.03.01   stop15y NEWSCHOOL_STOP1.05~Y
t70003_r5 YTRN-7000.03   e9589111 YSCH-9589.01.01.01   stop21m NEWSCHOOL_STOP2.01~M
t70004_r5 YTRN-7000.04   e9589112 YSCH-9589.01.01.02   stop21y NEWSCHOOL_STOP2.01~Y
doicm_r5 CV_INTERVIEW_CMONTH   e9589113 YSCH-9589.01.01.03   stop22m NEWSCHOOL_STOP2.02~M
encat_r5 CV_ENROLLSTAT   e9589114 YSCH-9589.01.01.04   stop22y NEWSCHOOL_STOP2.02~Y
GRSURV_r5 CV_HGC_EVER   e9589211 YSCH-9589.02.01.01   stop31m NEWSCHOOL_STOP3.01~M
GRJUNE_r5 CV_HGC_YR   e9589212 YSCH-9589.02.01.02   stop31y NEWSCHOOL_STOP3.01~Y
DEGSURV_r5 CV_HIGHEST_DEGREE_EVER   e9589213 YSCH-9589.02.01.03      
DEGJUNE_r5 CV_HIGHEST_DEGREE_YR   e9946111 YSCH-9946.01.01.01   Created Variables  
      e9946112 YSCH-9946.01.01.02   CDTHS CV_HS_DIPLOMA
Round 6     e9946113 YSCH-9946.01.01.03   CDTGD CV_GED
e2857_r6 YSCH-2857   e9946114 YSCH-9946.01.01.04   CDTAA CV_AA_DEGREE
e3112_r6 YSCH-3112   e9946211 YSCH-9946.02.01.01   CDTBA CV_BA_DEGREE
e3878_r6 YSCH-3878   e9946212 YSCH-9946.02.01.02   CDTMA CV_MA_DEGREE
e11700_r6 YSCH-11700   e9946213 YSCH-9946.02.01.03   CDTDC CV_DOC_DEGREE
t70001_r6 YTRN-7000.01   e10099111m YSCH-10099.01.01.01~M   CDTPF CV_PROF_DEGREE
t70002_r6 YTRN-7000.02   e10099111y YSCH-10099.01.01.01~Y      

Codes for Created Variables

Youth's Enrollment Status as of the Survey Date (ENCAT

1. not enrolled, no high school degree, no GED
2. not enrolled, GED, but no high school degree
3. not enrolled, a high school degree, no GED
4. not enrolled, some college
5. not enrolled, 2 year college graduate
6. not enrolled, 4 year college graduate

7. not enrolled, graduate degree
8. enrolled in grades 1-12
9. enrolled in a 2 year college
10. enrolled in a 4 year program
11. enrolled in a graduate program

 

Highest Grade Completed as of the Survey Date (GRSURV)

0.  none
1.  first
2.  second
3.  third
4.  fourth
5.  fifth

6.  sixth
7.  seventh
8.  eighth
9.  ninth
10. tenth
11. eleventh

12. twelfth
13. first year college
14. second year college
15. third year college
16. fourth year college

17. fifth year college
18. sixth year college
19. seventh year college
20. eighth year college
95. ungraded                

 

Highest Degree Received as of the Survey Date (DESURV)

0. none
1. GED
2. high school diploma
3. junior college or 2-year associate degree

4. bachelor's degree (B.A., B.S., or unspecified)
5. master's degree
6. doctoral degree
7. professional degree (M.D., L.L.D., D.D.S., J.D.)

 

Highest Grade Completed as of June 30, 2004 (GRJUNE)
0.  none
1.  first
2.  second
3.  third
4.  fourth
5.  fifth
6.  sixth
7.  seventh
8.  eighth
9.  ninth
10. tenth
11. eleventh
12. twelfth
13. first year college
14. second year college
15. third year college
16. fourth year college
17. fifth year college
18. sixth year college
19. seventh year college
20. eighth year college
95. ungraded                

 

Highest Degree Completed as of June 30, 2004 (DEGJUNE)
0. none
1. GED
2. high school diploma
3. junior college or 2-year associate degree
4. bachelor's degree (B.A., B.S., or unspecified)
5. doctoral degree
6. professional degree (M.D., L.L.D., D.D.S., J.D.)

This program first creates an enrollment status variable for each respondent.  It then identifies the highest grade completed by the respondent as of the  round 7 interview date and as of June 30, 2004.  Finally, it determines the highest degree or diploma received by the respondent as of the same two dates.

  1. Rs who report receiving both a GED and a H. S. Diploma are coded as receiving a H. S. Diploma
  2. Rs who report completing 12th grade but do not report receiving a H. S. Diploma or GED are coded as having completed 12th grade (in GRSURV and GRJUNE, if applicable) but are not credited with a H. S. Diploma/GED on ENCAT, DEGSURV, or DEGJUNE. Researchers interested in diploma receipt should use the DEGSURV or ENCAT variables, not HGC as of survey date since 12th grade completion does not necessarily signify H.S. Diploma completion.
  3. Due to conflicting reports from a small number of Rs (N=36) regarding their school attendance in the loops versus in single items, invalid skips (-3) have been filled in since no reasonable determination on the enrollment and grades completed can be made (ENCAT, GRSURV, GRJUNE). Specifically, Rs are assigned a -3 if they:
    a) report being not enrolled and
    b) report a HGC on the single items (e3112) that is greater than the cv_highest_degree_ever  for the prior round (but do not indicate completing this grade in a loop) and
    c) report that their HGA (e2857) is two or more greater than the HGC reported in r2. Since  these Rs provide inconsistent information multiple times, they have been assigned a -3.  If they provide valid information on degrees earned, that variable will have a value
  4. Some respondents provide conflicting information of grades attended/completed in the  schooling loops (e8416 and e9589) versus the single items (e3112, e2857). In round 6,  approximately ? respondents have conflicting grade reports, these Rs were identified as below where (ENROLL=0 and 12>=e3112^=GRSURV>0 and DEGSURV not in (1,2) and GRSURV^=95) or (0<maxgrade=GRSURV<95 and GRSURV^=e3112 and e3112<=12)
    This program gives priority to information provided in the schooling loops over that provided on single item questions. Users may wish to check the CV_HGC_EVER variable against student single item self-reports of HGC (e3112), which in many cases indicates a higher grade was completed than that reported in the loops.
  5. Even if we do not have a date for the degree received (or we have an invalid date) we code the DEGSURV for that degree.
  6. If R reports being in a 4year college or university (this is one category) and pursuing a degree higher than a bachelor's we code their enrollment status as enrolled in a graduate program (ENCAT=11). The problem here is that since we are not sure whether they are in a 4-year college or a university, we are not sure whether their they are actually in a graduate program or in a bachelor's program but their ultimate academic goal is a graduate program. There are 54 cases in this category who do not have an Associates or Bachelor's degree. We could have used that criterion to identify those actually in a graduate program. The problem is that there are programs which give only a graduate degree without a master's degree. So we code all these as ENCAT=11. Once the questionnaire is changed to accommodate the graduate program option, we can recode these in later rounds.

**** SECTION I *****;

** Initialize and define variables;


ENROLL=-3; * Indicates if R currently enrolled;

ENCAT=-3; * Enrollment status variable (including educational attainment);

HSD=0; * Indicates if R has a H. S. Diploma (check previous rounds);

GED=0; * Indicates if R has a GED (check previous rounds);

hgsch=0; * Indicates if R is currently attending grades 1-12 & no HSD or GED;

college=0; * Indicates if R is in college and working towards a undergrad (=1) or grad degree (=2);

flagcoll=0; * Indicates if Rs currently attending grades 1-12, no HSD or GED but enrolled in college
and working towards a grad or undergrad degree;

flaghs=0; * Indicates if Rs who have a H.S. Diploma and HGC=12 but still report enrollment in school;

flagloop=0; * Indicates if Rs going through old school re-enrollment loop twice;

somecoll=0; * Indicates if Rs having attended a college (in a degree program) in current or previous
rounds;

prevcoll=0; * Indicates if Rs having attended a college (in a degree program) in previous rounds. This
pertains to those actually enrolled in a degree program in college only;

currcoll=0; * Indicates if Rs having attended a college (in a degree program) in current round. This
pertains to those enrolled in a college and reporting to be working towards a degree
program. They may or may not be enrolled in a degree program.;

clg_ok=-4; * Indicates if R being in college (as reported in this round) w/o GED/HSD is OK. That is if
R is actually enrolled in a degree program. This pertains to currcoll and not prevcoll.;

last_enr=0; * Identifies the last round when R was enrolled;

ungraded=0; * Indicates Rs with no H.S. Diploma or GED have HGA=95 (ungraded);

same_mth=0; * Indicates Rs who received a degree in the same month as the interview.;

both=0; * Indicates that R reports receiving both GED and H. S. Diploma;

enr_deg=0; * Indicates if R is "currently" enrolled in a degree program but a non-degree program is
reported after this degree-program in the new school loops;

rosprb1=0; * Indicates Rs with scode(i) in (4,5) but e27337(i)=-4;

rosprb2=0; * Indicates Rs with scode(i)=-4 but e27337(i)>-4;

fill=-4; * These are filler variables that are used in arrays to match the number of elements.;

chk_comm=0; * Indicates if reports college in this round although R does not report receiving GED or
H.S. Diploma, by this round. Check the comments in current round to see whether they
were actually enrolled in a degree program in a college.;

chk_commP=0; * Indicates if ENCAT in any prior rounds shows college although R does not report
receiving GED or HS Diploma, by those rounds. Check the comments in current and earlier
rounds for these cases to see whether they were actually enrolled in a degree program in
a college.;

hgc_hga=0; * Indicates if Rs reporting HGC greater than HGA;

hgc_hga_n=-4; * Indicates if Rs reporting HGC greater than HGA, after HGC and HGA were edited for those
never enrolled at or since DLI such that they remained the same as those at DLI.;

prev_deg=0; * Indicates if the highest degree attained is lower than what it was in last round;

**************************************************************
** dlicm: date of last interview                                                                          **
** dli_rnd: the last round that R was interviewed                                               **
** doicm: date of current interview                                                                   **
** enroll_Rx: whether enrolled in earlier rounds                                                **
** encatP: ENCAT when last interviewed                                                        **
** hgaloop: highest grade attended (from loops)                                               **
** hgcloop: highest grade completed (from loops)                                            **
** hgcdt: date of completion of hgcloop                                                           **
**************************************************************;

JUNEYR=294;
YEAR=2004;
MONTH=6;
doicm_LR=doicmr7;

*** Define arrays to be used later in the program;

array e6784 (4) e6784r8_1-e6784r8_4;
array e6938 (4) e6938r8_1-e6938r8_3 dum;
array e7192 (4) e7192r8_1-e7192r8_4;
array e7142 (4,2) e7142r8_11 e7142r8_12
e7142r8_21 dum
e7142r8_31 dum
dum dum;
array e6943 (4,2) e6943r8_11 e6943r8_12
e6943r8_21 dum
dum dum
dum dum;

array scode (5) scoder8_1-scoder8_5;
array e27337 (5) e27337r8_1-e27337r8_5;

array strtm (*) strtmr8_11 strtmr8_21 strtmr8_31
strtmr8_12 strtmr8_22 strtmr8_32
strtmr8_13 strtmr8_23
strtmr8_14
strtmr8_15;
array strty (*) strtyr8_11 strtyr8_21 strtyr8_31
strtyr8_12 strtyr8_22 strtyr8_32
strtyr8_13 strtyr8_23
strtyr8_14
strtyr8_15;
array stopm (*) stopmr8_11 stopmr8_21 stopmr8_31
stopmr8_12 stopmr8_22 stopmr8_32
stopmr8_13 stopmr8_23
stopmr8_14
stopmr8_15;
array stopy (*) stopyr8_11 stopyr8_21 stopyr8_31
stopyr8_12 stopyr8_22 stopyr8_32
stopyr8_13 stopyr8_23
stopyr8_14
stopyr8_15;
array degre (*) e27337r8_1 e27337r8_1 e27337r8_1
e27337r8_2 e27337r8_2 e27337r8_2
e27337r8_3 e27337r8_3
e27337r8_4
e27337r8_5;
array codes (*) scoder8_1 scoder8_1 scoder8_1
scoder8_2 scoder8_2 scoder8_2
scoder8_3 scoder8_3
scoder8_4
scoder8_5;
array reasn (*) lftscr8_1 dum dum
lftscr8_2 dum dum
lftscr8_3 dum
lftscr8_4
lftscr8_5;
array strcm (*) strcm11 strcm21 strcm31
strcm12 strcm22 strcm32
strcm13 strcm23
strcm14
strcm51;
array stpcm (*) stpcm11 stpcm21 stpcm31
stpcm12 stpcm22 stpcm32
stpcm13 stpcm23
stpcm14
stpcm15;

array gratnd (*) e8416r8_11 e8416r8_12
e8416r8_21
e8416r8_31
e8416r8_41
e8416r8_51

e9589r8_111-e9589r8_113 e9589r8_121
e9589r8_211-e9589r8_213
e9589r8_311-e9589r8_313
e9589r8_511;

array grcomp (*) e9131r8_11 e9131r8_12
e9131r8_21
e9131r8_31
e9131r8_41
e9131r8_51

e9946r8_111-e9946r8_113 e9946r8_121
e9946r8_211-e9946r8_213
e9946r8_311-e9946r8_313
e9946r8_511;

array yrcomp (*) e9335yr8_11 dum
e9335yr8_21
e9335yr8_31
e9335yr8_41
e9335yr8_51

e10099yr8_111-e10099yr8_113 dum
e10099yr8_211-e10099yr8_213
e10099yr8_311-e10099yr8_313
e10099yr8_511;

array mocomp (*) e9335mr8_11 dum
e9335mr8_21
e9335mr8_31
e9335mr8_41
e9335mr8_51

e10099mr8_111-e10099mr8_113 dum
e10099mr8_211-e10099mr8_213
e10099mr8_311-e10099mr8_313
e10099mr8_511;

array t7000A (*) t7000:;

array doicmR (*) doicmr1-doicmr7;
array intmR (*) intmr1-intmr7;
array intyR (*) intyr1-intyr7;
array encatR (*) encatr1-encatr7;
array enrollR (*) enrollr1-enrollr7;
array grsurvR (*) grsurvr1-grsurvr7;
array grjuneR (*) grjuner1-grjuner7;
array degsurvR (*) degsurvr1-degsurvr7;
array hgaR (*) e3500r1 e2857r2-e2857r7;
array hgcR (*) e5000r1 e3112r2-e3112r7;
array hsrR (*) hsr1-hsr7;
array gdrR (*) gdr1-gdr7;

array scoder [7,7] dum dum dum dum dum dum dum
scoder2_1-scoder2_6 dum
scoder3_1-scoder3_7
scoder4_1-scoder4_5 dum dum
scoder5_1-scoder5_6 dum
scoder6_1-scoder6_4 dum dum dum
scoder7_1-scoder7_5 dum dum;
handedit=0;
*** HANDEDITS (1);
** In R7 R said R was allowed to enroll in college w/o diploma and so we coded ENCAT=9. But in R8 said R
was working towards a GED.;
if pubid=6646 then do;
encatr7=8;
handedit=1;
end;
** In R2 these Rs said they were pursuing GED at that college or in an adult education program.;
if pubid in (2154 3466) then do;
encatr2=8;
handedit=1;
end;
** This R does not seems to be getting H.S. credits at college.;
if pubid=440 then do;
encatr2=1;
encatr4=1;
encatr6=1;
encatr7=1;
handedit=1;
end;
** They reported YSCH-3878 as Refuse/Don'tKnow and so we have no schooling information.;
if pubid in (1219 1594 8484 9011) then do;
e3878r8=0;
handedit=1;
end;
** R mentioned in comments that R was not working towards any degree & YSCH-27337=-2;
if pubid=199 then do;
e27337r8_1=7;
handedit=1;
end;
** R mentioned in comments that R was undecided on degree & YSCH-27337=-2;
if pubid=3039 then do;
e27337r8_1=7;
handedit=1;
end;
** R mentioned in comments that R undecided on major and enrolled in online courses & YSCH-27337=-2.;
if pubid=6374 then do;
e27337r8_2=7;
handedit=1;
end;

*** Create intermediate variables to be used in the program later.;

* Create variable indicating Highest Degree Received by DLI;
do i=1 to dim(degsurvR); * MODIFIED;
if degsurvR(i)~=-5 then degsurvP=degsurvR(i);
end;

* Compute dlicm and dli_rnd;
do j=1 to dim(intmR);
if intmR(j)~=-5 then do;
dlicm=((intyR(j)-1980)*12)+intmR(j);
dlim=intmr(j); * NEW;
dliy=intyr(j); * NEW;
dli_rnd=j;
do k=1 to 7;
if scoder(j,k) in (4,5) then wasinclg_DLI=1; * NEW;
end;
hsrP=hsrR(j); * NEW;
gdrP=gdrR(j); * NEW;
end;
end;

if intmr8~=-5 then doicm=((intyr8-1980)*12)+intmr8;

/* DELETED
rosprb1=0; rosprb2=0;
do i=1 to dim(scode);
if (scode(i)=4|scode(i)=5) & e27337(i)=-4 then rosprb1=1;
if scode(i)=-4 & e27337(i)>-4 then rosprb2=1;
end;
*/

* Create variable indicating HGC by DLI;
if dli_rnd=1 then do;
if hsr1>-4 & grsurvr1<12 then grsurvP=12; * MODIFIED;
end;
do i=1 to dim(grsurvR);
if grsurvR(i)>-5 then grsurvP=grsurvR(i); * MODIFIED;
if grjuneR(i)>-5 then grjuneP=grjuneR(i); * NEW;
end;


corr_grsP=0; * NEW;
if e3061r8>=0 then do; corr_grsP=1; grsurvP=e3061r8; end;
if 0<=e3061r8<12 & (hsrP>-4|gdrP>-4) then do; corr_grsP=2; grsurvP=12; end;

** Checking int dates; * NEW;
if doicmr8~=-5 then doicm=doicmr8;

* Expected date of graduation; * NEW;

if e24889mr8>-4 & e24889yr8>-4 then do;
grady=e24889yr8;
gradm=e24889mr8;
if e24889mr8>0 & e24889yr8>0 then gradcm=(((e24889yr8-1980)*12)+e24889mr8);
if -3<=e24889mr8<=-1 & e24889yr8>0 then gradcm=(((e24889yr8-1980)*12)+6);
if -3<=e24889yr8<=-1 then gradcm=-3;
end;
if e24940mr8>-4 & e24940yr8>-4 then do;
grady=e24940yr8;
gradm=e24940mr8;
if e24940mr8>0 & e24940yr8>0 then gradcm=(((e24940yr8-1980)*12)+e24940mr8);
if -3<=e24940mr8<=-1 & e24940yr8>0 then gradcm=(((e24940yr8-1980)*12)+6);
if -3<=e24940yr8<=-1 then gradcm=-3;
end;

** Start and stop dates of enrollment in continuous month scheme;
do i=1 to dim(degre);
if stopm(i)>0 & stopy(i)>0 then stpcm(i)=((stopy(i)-1980)*12)+stopm(i);
if -4<stopm(i)<0|-4<stopy(i)<0 then stpcm(i)=-3;
if strtm(i)>0 & strty(i)>0 then strcm(i)=((strty(i)-1980)*12)+strtm(i);
if -4<strtm(i)<0|-4<strty(i)<0 then strcm(i)=-3;
end;

* Whether received GED, ever;
if CDTGD>-4 then GED=1;
* Whether received HS Diploma, ever;
if CDTHS>-4 then HSD=1;
* Whether received both GED and HS Diploma, ever;
if HSD=1 & GED=1 then both=1;


** Data and quex problems w/ roster information; * NEW;
rosprb1=0; rosprb2=0;
do i=1 to dim(scode);
if (scode(i)=4|scode(i)=5) & e27337(i)=-4 then rosprb1=1;
if scode(i)=-4 & e27337(i)>-4 then rosprb2=1;
if scode(i) in (-1,-2,-3,6) then INV1=1;
if scode(i) in (4,5) & e27337(i) in (-1,-2,-3) then INV2=1;
end;
do i=1 to dim(strcm);
if strcm(i)=-3 then INV3=1;
if stpcm(i)=-3 then INV3=2;
if strcm(i)=-3 & stpcm(i)=-3 then INV3=3;
end;

* Enrollment status at each interview and ENCAT at last interview;
do i=1 to dim(intmR);
if encatR(i) in (8,9,10,11) then enrollR(i)=1;
if encatR(i) in (1,2,3,4,5,6,7) then enrollR(i)=0;
if -5<encatR(i)<0 then enrollR(i)=encatR(i);
if encatR(i)~=-5 then encatP=encatR(i);
if enrollR(i)~=-5 then enrollP=enrollR(i);
if enrollR(i)=1 then last_enr=i;
if hgaR(i)~=-5 then hgaP=hgaR(i);
end;

* Last regular school enrolled in, its start and stop date of enrollmnet, type of school and degree
working towards & school loop number; * MODIFIED;
STOP=-4;
do i=1 to dim(degre);
if stpcm(i)>STOP then do;
STOP=stpcm(i);
STRT=strcm(i);
sch=codes(i);
deg=degre(i);
rosnum=i;
STOP_loc=1;
end;
if stpcm(i)=STOP & sch in (4,5) & codes(i)=sch & deg in (1,3,4,5,6,10) & degre(i)=deg then do;
STOP=stpcm(i);
STRT=strcm(i);
sch=codes(i);
deg=degre(i);
rosnum=i;
STOP_loc=2;
end;
if 0<stpcm(i)<STOP & 0<cdths<STOP & STOP=doicm & 0<STRT<strcm(i) & 0<cdths<=strcm(i)
& codes(i) in (4,5) & sch in (1,2,3)
& degre(i) in (1,3,4,5,6,10) & deg not in (1,3,4,5,6,10) then do;
STOP=stpcm(i);
STRT=strcm(i);
sch=codes(i);
deg=degre(i);
rosnum=i;
STOP_loc=3.1;
end;
if 0<stpcm(i)<STOP & 0<cdtgd<STOP & STOP=doicm & 0<STRT<strcm(i) & 0<cdtgd<=strcm(i)
& codes(i) in (4,5) & sch in (1,2,3)
& degre(i) in (1,3,4,5,6,10) & deg not in (1,3,4,5,6,10) then do;
STOP=stpcm(i);
STRT=strcm(i);
sch=codes(i);
deg=degre(i);
rosnum=i;
STOP_loc=3.2;
end;
if stpcm(i)=STOP & codes(i)=5 & sch=4 & degre(i) in (1,3,4,5,6,10) & deg in (1,3,4,5,6,10) then do;
STOP=stpcm(i);
STRT=strcm(i);
sch=codes(i);
deg=degre(i);
rosnum=i;
STOP_loc=4;
end;
if stpcm(i)=STOP & codes(i)=5 & sch=5 & degre(i) in (4,5,6,10) & deg in (1,3) then do;
STOP=stpcm(i);
STRT=strcm(i);
sch=codes(i);
deg=degre(i);
rosnum=i;
STOP_loc=5;
end;
if stpcm(i)=STOP & codes(i) in (4,5) & sch in (1,2,3) & (HSD=1|GED=1) then do;
STOP=stpcm(i);
STRT=strcm(i);
sch=codes(i);
deg=degre(i);
rosnum=i;
STOP_loc=6;
end;
if 0<stpcm(i)<=STOP & codes(i)in (1,2,3) & sch in (1,2,3) & STOP=doicm & strcm(i)>=STRT>0 then do;
STOP=stpcm(i);
STRT=strcm(i);
sch=codes(i);
deg=degre(i);
rosnum=i;
STOP_loc=7;
end;
end;
if STOP>0 then diff=doicm-STOP;
do i=1 to dim(degre);
if rosnum=i then do;
if STOP=doicm & stpcm(i)=doicm & reasn(i)>-4 then diff=10000;
end;
end;
do i=1 to dim(degre);
if strcm(i)>=-3 & stpcm(i)>=-3 then lastloopnum=i;
end;

* Whether the last school attended was High School or College, and if the latter then for what degree?;
if sch in (-1,-2,-3) then lastsch=-3;
if sch=6 then lastsch=6; * NEW;
if sch in (1,2,3) then lastsch=1;
if sch in (4,5) and deg in (1,3,4,5,6,10) then lastsch=2;
if sch in (4,5) and deg in (2,7,8,999) then lastsch=2.1;
if sch in (4,5) and deg=9 then lastsch=2.2;
if sch in (4,5) and deg in (-1,-2,-3) then lastsch=2.3;
if sch in (4,5) and deg=-4 then lastsch=2.4;

** Handedit; * NEW;
** We matched the unique IDs of the college they were attending in this round but for which we did not
ask the degree working towards question to the unique school IDs in prior rounds and round 9. If we
found that they reported working towards a college degree or not - we used that information to code
LASTSCH below. Out of the cases that we could not do this type of matching 5 had a single-tem HGC<=12
and single-item HGC<12. These we coded as LASTSCH=2.3, i.e., they were working towards a GED. Of the
remaining three cases:
(1) 2390: Received a GED from the college reported in the month after he/she stopped being
enrolled in that college - we coded this as lastsch=2.2
(2) 4746: Reported receiving a H.S. Diploma in YSCH-3113, although did not report one in
YSCH-11700. Reported HGC=14 in R8 and HGC=13 in R7. Was in a college degree program in R6.
This we coded as lastsch=2.
Note: see program R8degmiss.sas;

if lastsch=2.4 then do;
if pubid in (89 794 3121 4053 4289 4746 1695 2258 3388) then do;
lastsch=2;
deg=3;
end;
if pubid=579 then do;
lastsch=2;
deg=1;
end;
if pubid=4875 then do;
lastsch=4;
deg=1;
end;
if pubid=4724 then do;
lastsch=2;
deg=6;
end;
if pubid in (1124 1706 1843 3506 4396 5292 7737) then do;
lastsch=2.1;
end;
if pubid in (2390) then do;
lastsch=2.2;
end;
end;

** Some Rs reported no information about the last school they were enrolled in at current interview.
These Rs had received their BA/BS and were working towards their MA/MBA/MS/MSW/. We concluded that
they were in a legitimate college/university.;
if lastsch=6 & deg in (4,5,6,10) & cdtba>-4 then do;
sch=5;
lastsch=2;
end;


/* DELETED
* Whether received GED, ever;
if CDTGD>-4 then GED=1;
* Whether received HS Diploma, ever;
if CDTHS>-4 then HSD=1;
* Whether received both GED and HS Diploma, ever;
if HSD=1 & GED=1 then both=1;
*/

* - When R attended college (in a degree program) in a previous round; * MODIFIED;
do i=1 to dim(encatR);
if encatR(i) in (4,5,6,7,9,10,11) & degsurvR(i)>=1 then prevcoll=1;
if encatR(i) in (4,5,6,7,9,10,11) & degsurvR(i)<1 then do;
prevcoll=1;
chk_commP=1;
if hsrR(i)>-4|gdrR(i)>-4 then chk_commP=2;
end;
end;
* - When R attended college (in a degree program) in a previous round and did not correct HGA as of
last interview (e2806) to <13 i.e. accepts being in college as of last interview;
do i=1 to dim(encatR);
if (e2806r8=-4|e2806r8>=13) & encatR(i) in (4,5,6,7,9,10,11) & (hsrR(i)=1|gdrR(i)=1) then prevcoll=1;
if (e2806r8=-4|e2806r8>=13) & encatR(i) in (4,5,6,7,9,10,11) & hsrR(i)=-4 & gdrR(i)=-4 then do;
prevcoll=1;
chk_commP=1;
if 0<CDTHS<=doicmR(i) then chk_commP=2;
if 0<CDTGD<=doicmR(i) then chk_commP=2;
end;
end;
** Comments show R was in a valid college degree program;
if pubid=607 then chk_commP=0;

* - When R attended college (in a degree program) in this round;
do i=1 to dim(scode);
if scode(i) in (4,5) & e27337(i) in (1,3,4,5,6,10) then currcoll=1;
end;
if hsd=0 & ged=0 & currcoll=1 then chk_comm=1;
if hsd=0 & ged=0 & currcoll=1 & clg_ok=-4 then clg_ok=0;
if (hsd=1|ged=1) & currcoll=1 then clg_ok=1;
if prevcoll=1|currcoll=1 then somecoll=1;


*** Handedits.;

* IMP: check the comments and YSCH-13900 reports for this round for chk_comm=1 cases, to see whether
they are actaully enrolled in a degree program in a college. Also check the comments and
YSCH-13900 reports for all rounds for chk_commP=1 cases, to see whether their ENCAT in college
(w/o GED or HSD) in earlier rounds was justified.;

if pubid in (902 1915 4444 6650 7417 7575) & currcoll=1 then do;
clg_ok=1;
FLG_13900r8=1;
end;

if pubid in (81 83 589 1260 1708 2122 3333 3508 3688 4182 4315
4650 5499 5918 5929 5937 5940 5984 6505 6587 6646 6811
6906 7165 7391 7638 7710 7816 7828 8182 8722 9018 6491
8698)
then do;
clg_ok=0;
FLG_13900r8=1;
end;

* Grade information from loops;
hgaloop=e8416r8_11;
do i=2 to dim(gratnd);
if gratnd(i)>hgaloop then do;
hgaloop=gratnd(i);
end;
end;

hgcloop=-16;
do i=1 to dim(gratnd);
if gratnd(i)>=0 & gratnd(i)>hgcloop then do;
if grcomp(i)=1 then do;
hgcloop=gratnd(i);
if mocomp(i)>0 & yrcomp(i)>0 then hgcdt=((yrcomp(i)-1980)*12)+mocomp(i);
if mocomp(i)>0 & yrcomp(i)>0 then hgcdt=-3;
end;
else if grcomp(i) in (-1,-2,-3) then do;
hgcloop=grcomp(i);
end;
end;
if gratnd(i) in (0,-1, -2, -3,-4) & grcomp(i)>-4 then do;
hgcloop=-55;
end;
end;

if (1<=e2857r8<=12) & HSD=0 & GED=0 then hgsch=1;

do i=1 to dim(e27337);
if e27337(i) in (1,3) then college=1;
if e27337(i) in (4,5,6,10) then college=2;
if e27337(i) in (-1,-2,-3) then college=-3;
end;

if 0<=e2857r8<e3112r8<95 then hgc_hga=1;
if (0<=e2857r8<12) & e3112r8=12 then hgc_hga=2;
if 0<=e2857r8<=12<e3112r8<95 & hsd=0 & ged=0 then hgc_hga=3.1;
if 0<=e2857r8<=12<e3112r8<95 & (hsd=1|ged=1) then hgc_hga=3.2;
if 12<e2857r8<e3112r8<95 then hgc_hga=4;

/** VERY IMP: When R was not enrolled at DLI and has not been enrolled since DLI, I put HGA (YSCH-2857)
and HGC (YSCH-3112) as that reported at DLI unless corrected. **/
if e3878r8=0 & hgc_hga>=1 then do;
hgc_hga_n=0;
if e3103r8~=0 then e2857r8=hgaR(dli_rnd);
if e3103r8=0 then e2857r8=e3104r8;
if e3010r8~=0 then e3112r8=hgcR(dli_rnd);
if e3010r8=0 then e3112r8=e3061r8;
if 0<=e2857r8<e3112r8<95 then hgc_hga_n=1;
end;

***********************************************************
*** (I) CREATED VARIABLE - ENROLLMENT STATUS (ENCAT) ***
***********************************************************;

*** [IA] Determining whether the respondent is enrolled or not.
Note: Summer vacations are included as part of the enrollment period;

if diff=0 then enroll=1;
if diff>0 then enroll=0;
if -3<=STOP<=-1 then enroll=0;
if e3878r8=0 then enroll=0;

** If respondent has received a H.S. Diploma, HGA & HGC is 12 and there is a valid end date for
the completed 12th grade then we check whether R should be coded as enrolled or not. If R reports
a 2-yr or 4-yr college then R is coded as enrolled irrespective of the type of degree working
towards;

if HSD=1 & hgcloop=12 & hgcdt>0 & ENROLL=1 then do;
chk_enr2=1;
ENROLL=0;
do i=1 to dim(scode);
if scode(i) in (4,5) then ENROLL=1;
end;
end;

** Computing ENROLL by another method - ENROLLx; * NEW;
if e1624r8_1=1 then flagloop=1; * flag those who re-enroll;

** not enrolled at and sdli;
if e3878r8=0 then enrollx=0;

** old school;
* enrolled at dli, continuously enrolled in old school sdli, no new schools;
if e4795r8=1 & e4951r8=0 then enrollx=1;
* not enrolled at dli but re-enrolled in old school sdli, continuously re-enrolled in old school
sdli, no new schools;
if e4793r8=1 & e4951r8=0 then enrollx=1;

* not continuously enrolled in old school SDLI;
if (e4795r8=0 or e4793r8=0) then do;
*left school upon completing coursework or receiving degree;
if e1605r8=-4 & e4951r8=0 then enrollx=0;
* re-enrolled in old school;
if e1605r8=1 then do;
* continuously re-enrolled in old school, no new schools;
if e1615r8_1=1 & e4951r8=0 then enrollx=1;
* not continuously re-enrolled in old school, first time through loop, no other re-enrollments
at old school, and no new schools;
if e1615r8_1=0 & e1624r8_1=0 & e1627r8_1=0 & e4951r8=0 then enrollx=0;
* continuously re-re-enrolled in old school, no new schools;
if e1615r8_2=1 & e4951r8=0 then enrollx=1;
* not continuously re-re-enrolled in old school, second time through loop;
if e1615r8_2=0 then chk_enrprd=1;
end;
* not re-enrolled in old school, no new schools;
if e1605r8=0 and e4951r8=0 then enrollx=0;
end;

** new school;

* enrolled or not enrolled at dli but enrolled in new school sdli;
if (e4951r8=1 or e3878r8=1) then do;

* continuously enrolled in new school, no other new schools reported;
do i=1 to dim(e6784);
if e6784(i)=1 & e7192(i)=0 then enrollx=1;
end;

* not continuously enrolled in new school, re-enrolled, continuously re-enrolled, no other
new schools reported;
do i=1 to dim(e6784);
if e6784(i)=0 & e7192(i)=0 then do;
do j=1 to 2;
if e6943(i,j)=1 then enrollx=1;
end;
end;
end;

* not continuously enrolled in new school -
(1) re-enrolled, not continuously re-enrolled
(2) left school because completed coursework or received degree,
No other enrollment periods, no other new school;
do i=1 to dim(e6784);
do j=1 to 2;
if e7142(i,j)=0 & e7192(i)=0 then enrollx=0;
end;
end;

* not continuously enrolled in new school, did not re-enroll, no new schools;
do i=1 to dim(e6784);
if e6938(i)=0 & e7192(i)=0 then enrollx=0;
end;

end;

*** (IB) Determining the sub-categories of not enrolled;

if ENROLL=0 then do;

** No H.S. Diploma, no GED - ENCAT=1;
if (GED<=0) & (HSD<=0) then ENCAT=1;

** GED - ENCAT=2;
if GED=1 then ENCAT=2;

** High school degree - ENCAT=3;
if HSD=1 then ENCAT=3;

** R (now not enrolled) attended some college & was enrolled in a degree program (i.e. e27337
is 1,3,4,5 or 6), - ENCAT=4.
Note: those who indicated attending a college and working toward a "vocational or technical
certificate" (e27337=2) are coded as not having attended college because these credits
typically won't transfer for a Bachelors or an Associates Degree. R attended some college,
perhaps in a prior round, or in current round;

tmpENCAT=ENCAT;
if prevcoll=1 then ENCAT=4;
if currcoll=1 & ((13<=e2857r8<=20)|e3112r8>=12|HSD=1|GED=1|hgcloop=12|clg_ok=1) then ENCAT=4;
if prevcoll=0 & currcoll=1 & clg_ok=0 then ENCAT=tmpENCAT; * NEW;

** Received junior college or 2 year associate degree - ENCAT=5;
if CDTAA>-4 then ENCAT=5;

** Received bachelor's degree - ENCAT=6;
if CDTBA>-4 then ENCAT=6;

** Received master's, doctoral or professional degree - ENCAT=7;
if CDTMA>-4|CDTDC>-4|CDTPF>-4 then ENCAT=7;

end;

*** (IC) Determining the sub-categories of enrolled;

if ENROLL=1 then do;

if lastsch=1 then do;
if CDTHS>0 & (e3112r8=12|hgcloop=12) then flaghs=1;
if (1<=e2857r8<=12) & HSD<=0 & GED<=0 then ENCAT=8;
if e2857r8=13 & HSD=0 & GED=0 then ENCAT=8;
if e2857r8=95 & HSD=0 & GED=0 then do;
ENCAT=8;
ungraded=1;
end;
end;

if lastsch=2 then do;

if sch=4 & deg in (1,3,4,5,6,10) & ((13<=e2857r8<95)|e3112r8>=12|GED=1|HSD=1|hgcloop=12|clg_ok=1)
then ENCAT=9;

if sch=5 & deg in (1,3,4,5,6,10) & ((13<=e2857r8<95)|e3112r8>=12|GED=1|HSD=1|hgcloop=12|clg_ok=1)
then ENCAT=10;

if sch=5 & deg in (4,5,6,10) & ((16<e2857r8<95)|e3112r8>=16) then ENCAT=11;

if prevcoll=0 & currcoll=1 & clg_ok=0 then do; * NEW;
if GED=1 then ENCAT=2;
if HSD=1 then ENCAT=3;
if GED=0 & HSD=0 then ENCAT=8;
end;
if prevcoll=1 & currcoll=1 & clg_ok=0 then ENCAT=4; * NEW;

if (1<=e2857r8<=12) & HSD=0 & GED=0 & clg_ok~=1 then do;
ENCAT=8;
flagcoll=1;
end;

end;

if lastsch>2 then do;
if GED=0 & HSD=0 & somecoll=0 then ENCAT=8;
if currcoll=0 & prevcoll=1 then do;
*if HSD=1|GED=1 then ENCAT=4; * DELETED;
ENCAT=4; * NEW;
if CDTAA>-4 then ENCAT=5;
if CDTBA>-4 then ENCAT=6;
if CDTMA>-4|CDTDC>-4|CDTPF>-4 then ENCAT=7;
end;
if currcoll=1 & (HSD=1|GED=1|clg_ok=1) then ENCAT=4;
end;
if GED=1 & HSD=0 & somecoll=0 then ENCAT=2;
if HSD=1 & somecoll=0 then ENCAT=3;
if (HSD=1|GED=1|clg_ok=1) & currcoll=1 & lastsch=-3 then ENCAT=4;
if (HSD=1|GED=1) & prevcoll=1 & lastsch=-3 then ENCAT=4;

end;

oldencat=ENCAT;

** Respondents receiving the bachelor's degree degree in and around the month of the interview are
coded as being enrolled by the program. So the ENCAT is not correct. We recode the ENCAT;

if CDTHS>0 & doicm=CDTHS & ENCAT in (-3,1,2,8) then do;
ENCAT=3;
same_mth=1;
end;

if CDTGD>0 & doicm=CDTGD & ENCAT in (-3,1,8) then do;
ENCAT=2;
same_mth=1;
end;

if CDTAA>0 & doicm=CDTAA & ENCAT in (-3,1,2,8,3,4,9) then do;
ENCAT=5;
same_mth=1;
end;

if CDTBA>0 & doicm=CDTBA & ENCAT in (-3,1,2,8,3,4,5,10) then do;
ENCAT=6;
same_mth=1;
end;

if ((CDTMA>0 & doicm=CDTMA)|(CDTDC>0 & doicm=CDTDC)) & ENCAT~=7 then do;
ENCAT=7;
same_mth=1;
end;

** If R was enrolled since DLI although may not be currently enrolled;

if ENROLL=1|(ENROLL=0 & e3878r8~=0) then do;

if lastsch=-3 & ENCAT<0 then do; * MODIFIED;
ENCAT=-3;
reason=1;
end;

if INV2=1 then do;
flagcoll=-3;
college=-3;
if enroll=1 & lastsch=2.3 then do;
ENCAT=-3;
reason=2.1;
end;
if enroll=0 & somecoll=0 & lastsch=2.3 then do;
ENCAT=-3;
reason=2.2;
end;
end;

* Those who completed high school (or a GED), report HGA>12 but do not indentify a college on the
school rosters.;
if (HSD=1|GED=1) & (13<=e2857r8<95) & (13<=e3112r8<95) then do;
tmpvar1=ENCAT;
tmpvar2=reason;
ENCAT=-3;
reason=3;
do i=1 to dim(scode);
if scode(i) in (-1,-2,-3,4,5,6) then do;
ENCAT=tmpvar1;
reason=tmpvar2;
end;
end;
end;

* DELETED;
/* Those who received a H.S. Diploma, but report HGA<=12 & HGC<12.;
if HSD=1 & e2857r8<=12 & e3112r8<12 & hgcloop<12 & handedit=0 then do;
chk_hgc=1;
if hsrP=-4 then do;
ENCAT=-3;
reason=4;
end;
end;*/

* If R has neither GED nor H.S. Diploma but reports going to a college, in a degree program,
& HGA>=13, and we have no additional evidence that R was given special permission to do so
we code ENCAT=-3.;
if (13<=e2857r8<=20) & GED=0 & HSD=0 & clg_ok~=1 & currcoll=1 then do;
ENCAT=-3;
reason=5;
end;

* Those who reported being in a 2-yr or 4-yr college but were not asked what type of degree
working towards;
if rosprb1=1 & ENCAT=-3 & reason=. then reason=6;

end;

** HANDEDITS (2);
** Had a GED and was in college last round. This round discontinued going to that college and went
to a school to get High School Diploma.;
if pubid=6754 then do;
ENCAT=4;
handedit=1;
end;

** The second school type was -2. R is currently enrolled in this school. We identified the school
as a community center.;
if pubid=6743 then do;
ENCAT=8;
handedit=1;
end;
** The second school type was -2. R is currently enrolled in this school. We identified the school
as a vocational institute. R was in a GED program in an earlier school which R left as R moved
away.;
if pubid=7828 then do;
ENCAT=1;
handedit=1;
end;

** R left college in last round bcos of poor grades. At that time R was working towards an AA degree.
In this round R reported re-enrolling in that same college and currently enrolled but did not
know what degree R was working towards and had no major.;
if pubid=2377 then do;
ENCAT=4;
handedit=1;
end;
** R reported being enrolled in this college since Round 6 and reported not working towards any
diploma or degree in Rounds 6, 7 and 9. In this round R reported not knowing what degree R was
working towards;
if pubid=395 then do;
ENCAT=3;
handedit=1;
end;
** In this round R reported not knowing what degree R was working towards. R reported being enrolled
in this college in Round 9 as well and in that round reported R was not working towards any
diploma or degree. R was also enrolled in this college in Rounds 4 and 5 when R reported working
towards an AA degree.;
if pubid=4171 then do;
ENCAT=4;
handedit=1;
end;
** In this round R reported not knowing what degree R was working towards. This is the only round R
reports being enrolled in any college.;
if pubid=5379 then do;
ENCAT=3;
handedit=1;
end;
** R received H.S.Diploma in June 2000 and then enrolled in college in September 2000. R refused
to report the degree R was working towards. The last time R was interview was in May 1997 and
so we do not have any additional information about this college.;
if pubid=6948 then do;
ENCAT=-3;
handedit=1;
end;
** In this round R reported not knowing what degree R was working towards. R has been continuously
enrolled at this college since Round 4 (except for 1 vacation term reported in Round 5) and also
reported being enrolled at this college in Round 9. Also R has reported working towards an AA
degree in all rounds other than this round.;
if pubid=7519 then do;
ENCAT=9;
handedit=1;
end;
** In this round R reported not knowing what degree R was working towards. R was last enrolled in a
high school in May 1999 (reported in Round 3). After that R was not enrolled until this round. In
Round 5 R reported receiving a H.S. Diploma in June 2000.;
if pubid=8491 then do;
ENCAT=3;
handedit=1;
end;

** encat_r2=9, reports a college enrollment in Round 2 but has neither GED nor HSD. ENCAT is 1 or 8
since that round. Is not enrolled in college in this round.;
if pubid in (3508, 8952) then do;
ENCAT=1;
handedit=1;
end;

** Degree working towards was missing and was not interviewed in R9;
if pubid=1346 then do;
ENCAT=-3;
reason=7;
handedit=1;
end;

oldenroll=enroll;
***** SECTION II *****;
data mrg2; set mrg1;

** Must fix "ENROLL" flag because this flag is used in the grades skipped/repeated program;
if ENCAT in (1,2,3,4,5,6,7) & ENROLL~=0 then do;
ENROLL=0;
enr_chg=1;
end;
if ENCAT in (8,9,10,11) & ENROLL~=1 then do;
ENROLL=1;
enr_chg=2;
end;

** State the arrays to be used in the rest of the program;

array gratnd (*) e8416r8_11 e8416r8_12
e8416r8_21
e8416r8_31
e8416r8_41
e8416r8_51

e9589r8_111-e9589r8_113 e9589r8_121
e9589r8_211-e9589r8_213
e9589r8_311-e9589r8_313
e9589r8_511;

array grcomp (*) e9131r8_11 e9131r8_12
e9131r8_21
e9131r8_31
e9131r8_41
e9131r8_51

e9946r8_111-e9946r8_113 e9946r8_121
e9946r8_211-e9946r8_213
e9946r8_311-e9946r8_313
e9946r8_511;

array yrcomp (*) e9335yr8_11 dum
e9335yr8_21
e9335yr8_31
e9335yr8_41
e9335yr8_51

e10099yr8_111-e10099yr8_113 dum
e10099yr8_211-e10099yr8_213
e10099yr8_311-e10099yr8_313
e10099yr8_511;

array mocomp (*) e9335mr8_11 dum
e9335mr8_21
e9335mr8_31
e9335mr8_41
e9335mr8_51

e10099mr8_111-e10099mr8_113 dum
e10099mr8_211-e10099mr8_213
e10099mr8_311-e10099mr8_313
e10099mr8_511;

array e23450 (5) e23450r8_1-e23450r8_3 dum dum;

maxgrade=-16;
comp_mo=-16;
comp_yr=-16;
assign='unassigned';

evrloop=0; * Flag to indicate respondents who go through a grade loop at least once;
subsitm=0; * Flag to indicate e3112 (single item) is being used to compute GRSURV;
subhgam=0; * Flag to hgaloop (HGA from loop) minus 1 is being used to compute GRSURV;
subprev=0; * Flag to indicate grade from last interviewed round is being used to compute GRSURV;
setto12=0; * Flag to indicate GRSURV being set to 12;

dateitm=0; * Flag to indicate date of grade completion missing;
disagre=0; * Flag to indicate that GRSURV from previous rounds is greater than from the current round;
datedeg=0; * Flag to indicate date of degree received is invalid;
mxg_inv=0; * Flag to indicate that the completed grade from loops is 0 or invalid;

*******************************************************************************************
*** [II] CREATED VARIABLE - HIGHEST GRADE COMPLETED AS OF THE SURVEY DATE (GRSURV) ***
*******************************************************************************************;

*** [IIA] Enrolled or not enrolled;

** Compute maximum grade completed using information in this round (grade loops);
do i=1 to dim(gratnd);
if gratnd(i)>=0 & gratnd(i)>maxgrade then do; ** Select cases where there is a valid grade and it
is greater than the previously recorded grade;
if grcomp(i)=1 then do;
assign='FROM LOOP';
maxgrade=gratnd(i);
comp_mo=mocomp(i);
comp_yr=yrcomp(i);
if (0<yrcomp(i)<YEAR)|(yrcomp(i)=YEAR & 0<mocomp(i)<=MONTH) then do;
CJUMON=mocomp(i);
CJUYR=yrcomp(i);
CJUGR=gratnd(i); * NEW;
GRJUNE=gratnd(i);
LOC=1;
end;
end;
else if grcomp(i) in (-1,-2,-3) then do;
maxgrade=grcomp(i);
assign='GRCOMP MISSING ';
end;
end;
if gratnd(i) in (0,-1,-2,-3,-4) & grcomp(i)>-4 then do; * MODIFIED;
mxg_inv=1;
*assign='GRADE INVALID';
end;
if gratnd(i) in (0,-1,-2,-3,-4) & grcomp(i)=1 then do; * MODIFIED;
mxg_inv=2;
maxgrade=-55;
end;
if grcomp(i)>-4 then evrloop=1;
end;

/* DELETED
** Create variable indicating maximum grade completed from previous rounds;
grsurvP=GRSURV_r6;
if GRSURV_r6=-5 then do;
grsurvP=GRSURV_r5;
if GRSURV_r5=-5 then do;
grsurvP=GRSURV_r4;
if GRSURV_r4=-5 then do;
grsurvP=GRSURV_r3;
if GRSURV_r3=-5 then do;
grsurvP=GRSURV_r2;
if GRSURV_r2=-5 then do;
grsurvP=GRSURV_r1;
end;
end;
end;
end;
end;
if e3061>=0 then grsurvP=e3061;
*/

** Make GRSURV equal to maximum completed grade reported in the loops;
GRSURV=maxgrade;
LOCATOR=1;


** R reports YSCH-3112 to be in (1,2,3,4) and as being in college. Then it may be possible that R
is reporting the completed years of college rather than years of schooling. Here we identify
these cases; * NEW;
if ENCAT in (4,5,6,7,9,10,11) & e3112r8 in (1,2,3,4,5,6) then do;
inclg_lowHGC=1;
e3112r8_imp=e3112r8+12;
end;

** If invalid or incorrect grade data was read into loop or if R never goes through the loops
(usually because they now attend 2 or 4 year colleges, sometimes because of infosheet mistake) and
they attended school at some time either at DLI or SDLI, then replace GRSURV with single item;
** However: this single item must be checked against the roster data: if R completed high school,
never reports attending a college in the loop/roster information, but indicates
enrollment in a grade > 12 in the single item measure, the GRSURV variable is set to 12
since no college degree program has been reported.;

if (((e8416r8_11<=0) & e9131r8_11~=-4)|GRSURV=-55|evrloop=0) & e3878r8~=0 & e3112r8~=-4 then do;
subsitm=1;
if e3112r8<=12 & HSD=0 & GED=0 & clg_ok~=1 then do;
GRSURV=e3112r8;
GRJUNE=-3;
LOCATOR=2.1;
LOC=2.1;
if e8416r8_11<=0 & e9131r8_11~=-4 then assign='ENROLLED, BAD GRADE: SUBS. ITEM';
else if evrloop=0 then assign='ENROLLED, NOT THRU LOOPS: SUBS. ITEM';
else if maxgrade=-55 then assign='ENROLLED, BAD GRADE: SUBS. ITEM';
end;
end;
if mxg_inv=1 & -55<maxgrade<0 & e3878r8~=0 & e3112r8~=-4 then do; * NEW
subsitm=1;
if HSD=0 & clg_ok~=1 then do;
GRSURV=e3112r8;
LOCATOR=2.2;
LOC=2.2;
end;
end;

/*****
** If someone confirmed completing a grade in the loop & didn't know the year of completion, then
use the loop data or the single item (ysch-3112) whichever is lower.;

if maxgrade=GRSURV & comp_yr=-2 then do;
if maxgrade>e3112r8 & e3112r8>=0 then do;
dateitm=1;
subsitm=1;
GRSURV=e3112r8;
GRJUNE=-3;
LOCATOR=3;
LOC=3.1;
assign='SUBS. ITEM: NO DATE ITEM lower';
end;
end;

if maxgrade=GRSURV & comp_yr~=-2 & comp_mo=-2 then do;
if comp_yr<YEAR then do;
GRJUNE=GRSURV;
LOC=3.21;
end;
if comp_yr>=YEAR then do;
GRJUNE=-3;
LOC=3.22;
end;
end;

else if (comp_yr~=-2 & comp_mo~=-2) then do;
dateitm=.;
end;

*** Major modification on 10-13-2005;
** If R was enrolled SDLI but didn't confirm completing a grade

If single item HGA and HGA from loop are equal
then we substitute HGC single item if HGA from loop is one or more grades higher than
HGC single item. Otherwise if HGC single item greater than or equal to HGA from loop then use
HGC from DLI.

If single item HGA and HGA from loop are not equal
then we substitute HGC from DLI if single item HGC is equal to HGC from DLI or
single item HGC if it is 1 grade higher than HGC from DLI;

if GRSURV=-16 & e3878r8~=0 then do;
if (hgaloop=e2857r8) & (e2857r8>=0) then do;
if (hgaloop-1)>=e3112r8 & e3112r8>=0 then do;
gr_ncomp1=1;
subsitm=1;
GRSURV=e3112r8;
GRJUNE=-3;
LOCATOR=4.1;
LOC=4.1;
assign='ENROLLED-NO LOOP HGC-hgaloop-1=e3112r8: SUBS hgaloop-1';
end;
else if e3112r8>(hgaloop-1) & e3112r8>=grsurvP>=0 & hgaloop>=0 then do;
gr_ncomp2=1;
subprev=1;
GRSURV=grsurvP;
GRJUNE=grsurvP;
LOCATOR=4.2;
LOC=4.2;
assign='ENROLLED-NO LOOP HGC-SAID NO to GRADE: SUBS PREV';
end;
else if e3112r8>(hgaloop-1) & 0<=e3112r8<grsurvP & hgaloop>=0 then gr_ncomp2=2;
end;
if hgaloop~=e2857r8 & e2857r8>=0 & hgaloop>=0 then do;
if hgaloop<e2857r8 then gr_ncomp3=1;
if hgaloop>e2857r8 then gr_ncomp3=2;
if e3112r8<=grsurvP then do;
GRSURV=grsurvP;
GRJUNE=grsurvP;
locator=4.3;
LOC=4.3;
assign='ENROLLED-NO LOOP HGC-SAID NO to GRADE: SUBS PREV';
end;
end;
end;

*****/

** If R was enrolled SDLI but didn't confirm completing a grade, we substitute a value equal to one
less than HGA from loop using a conservative approach:
if the HGA from loop(hgaloop) is equal to the single item HGA (e2857) then must have completed
hgaloop-1 and so substitute hgaloop-1.
else if hgaloop-1 >= e3112 or grsurvP=e3112 then e3112 makes sense and so substitute single item
(e3112).
else if hgaloop-1 < e3112 and grsurvP < e3112 then e3112 becomes suspect and so substitute
grsurvP;

if GRSURV=-16 & e3878r8~=0 then do;
if (hgaloop=e2857r8) & (e2857r8>=0) then do;
subhgam=1;
GRSURV=hgaloop-1;
GRJUNE=-3;
LOCATOR=3.1;
LOC=3.1;
assign='ENROLLED-NO LOOP HGC-hgaloop=2857: SUBS hgaloop-1';
end;
else if (hgaloop-1)=e3112r8 & e3112r8>=0 then do;
subsitm=1;
subhgam=1;
GRSURV=e3112r8;
GRJUNE=-3;
LOCATOR=3.2;
LOC=3.2;
assign='ENROLLED-NO LOOP HGC-hgaloop-1=e3112: SUBS hgaloop-1';
end;
else if (hgaloop-1)>e3112r8 & e3112r8>=0 then do;
subsitm=1;
GRSURV=e3112r8;
GRJUNE=-3;
LOCATOR=3.3;
LOC=3.3;
assign='ENROLLED-NO LOOP HGC-hgaloop-1=e3112: SUBS hgaloop-1';
end;
else if e3112r8>(hgaloop-1) & e3112r8>=grsurvP>=0 & hgaloop>=0 then do;
subprev=1;
GRSURV=grsurvP;
GRJUNE=grsurvP;
LOCATOR=3.4;
LOC=3.4;
assign='ENROLLED-NO LOOP HGC-SAID NO to GRADE: SUBS PREV';
end;
end;

** If someone confirmed completing a grade in the loop & didn't know the year of completion, then
use the loop data or the single item (ysch-3112) whichever is lower.;

if maxgrade=GRSURV & comp_yr=-2 then do;
if maxgrade>e3112r8 & e3112r8>=0 then do;
dateitm=1;
subsitm=1;
GRSURV=e3112r8;
GRJUNE=-3;
LOCATOR=4;
LOC=4.1;
assign='SUBS. ITEM: NO DATE ITEM lower';
end;
end;

if maxgrade=GRSURV & comp_yr~=-2 & comp_mo=-2 then do;
if comp_yr<YEAR then do;
GRJUNE=GRSURV;
LOC=4.21;
end;
if comp_yr>=YEAR then do;
GRJUNE=-3;
LOC=4.22;
end;
end;

else if (comp_yr~=-2 & comp_mo~=-2) then do;
dateitm=.;
end;

** If R reported receiving a GED or H.S. Diploma, but GRSURV<12 then set GRSURV=12. If date of
receipt of GED or HS Diploma is on or before June 2004 then GRJUNE is also set to 12. If not
then GRJUNE is set to grsurvP if maxgrade is invalid. If maxgrade is valid then GRJUNE has
already been set by the code above. If dates are invalid then GRJUNE is set to -3.;

setto12=0;
if (HSD=1|GED=1) & GRSURV<=12 then do;
setto12=1;
GRSURV=12;
LOCATOR=5;
if 0<=GRJUNE<grsurvP<95 then do;
GRJUNE=grsurvP;
LOC=5.10;
end;
if (CDTGD=-3 & gdrP=-4 & hsrP=-4)|(CDTHS=-3 & hsrP=-4 & gdrP=-4) then do; * NEW;
GRJUNE=-3;
LOC=5.11;
end;
if ((CDTGD=-3 & gdrP>-4)|(CDTHS=-3 & hsrP>-4)) & dlicm>JUNEYR then do; * NEW;
GRJUNE=-3;
LOC=5.12;
end;
if ((CDTGD=-3 & gdrP>-4)|(CDTHS=-3 & hsrP>-4)) & 0<dlicm<=JUNEYR then do; * NEW;
GRJUNE=12;
LOC=5.13;
end;
if CDTGD>JUNEYR & maxgrade<=0 then do;
GRJUNE=grsurvP;
LOC=5.14;
end;
if CDTHS>JUNEYR & maxgrade<=0 then do;
GRJUNE=grsurvP;
LOC=5.15;
end;
if 0<CDTGD<=JUNEYR then do;
GRJUNE=12;
LOC=5.16;
end;
if 0<CDTHS<=JUNEYR then do;
GRJUNE=12;
LOC=5.17;
end;
assign='set to 12: HSD or GED';
end;

/*****
*** Modified on 10-13-2005;
** If college attendance is not reported in the loops then use should be made of the single item HGC
(e3112), but only if enrollment in a college degree program (aa, ba, ma, etc) is reported
(e27337) in the current or a previous round. Use ENCAT to determine whether R was ever in college.
Given that R attends college then
(a) if e3112>=12 then set that.
(b) if R reports not attending college in this round but had attended college by DLI then set
to HGC by DLI.
(c) otherwise if e3112<12 and none of the above conditions hold then it is unclear what HGC is so
HGC=-3. Check these cases carefully, using comments to see whether R was actually enrolled in
a degree program in college. If so then leave those cases out.;

if ENCAT in (4,5,6,7,9,10,11) then do;
if 12<=e3112r8<95 then do;
subsitm=1;
GRSURV=e3112r8;
LOCATOR=6.1;
assign='college';
end;
if e3112r8<12 then inclg_lt12=1;
if e3112r8<grsurvP then inclg_ltDLI=1;
if currcoll=0 & prevcoll=1 & encatP in (4,5,6,7,9,10,11) & 95>e3112r8>grsurvP
then wasinclg_dfDLI=e3112r8-grsurvP;
end;
*****/

** If college attendance is not reported in the loops then use should be made of the single item HGC
(e3112), but only if enrollment in a college degree program (aa, ba, ma, etc) is reported
(e27337) in the current or a previous round. Use ENCAT to determine whether R was ever in college.
Given that R attends college then
(a) if e3112>=12 then set HGC=e3112
(b) if e3112<12 and R reports completing a grade>12 in a previous round and also attending college
in that round then set the previous round HGC
(c) otherwise if e3112<12 and R reports completing a H.S. Diploma or GED then GRSURV is
set equal to 12.
(d) otherwise if e3112<12 and none of the above conditions hold then it is unclear what HGC is so
HGC=-3. Check these cases (locator=6.1) carefully, using comments to see whether R was
actually enrolled in a degree program in college. If so then leave those cases out.;

if ENCAT in (4,5,6,7,9,10,11) then do;
if e3112r8<12 & clg_ok~=1 then do;
GRSURV=-3;
LOCATOR=6.1;
assign='college, UNCLEAR';
end;
if e3112r8<12 & (HSD=1|GED=1|clg_ok=1) then do; * MODIFIED;
inclg_grlt12=1;
subsitm=1;
GRSURV=e3112r8;
LOCATOR=6.21;
if e3112r8_imp>12 then do;
GRSURV=e3112r8_imp;
LOCATOR=6.22;
end;
end;
if GRSURV<=12<grsurvP & e3112r8<12 & encatP in (4,5,6,7,9,10,11) then do;
subprev=1;
GRSURV=grsurvP;
LOCATOR=6.3;
assign='college, PREVIOUS round';
end;
if 12<=e3112r8<95 then do;
subsitm=1;
GRSURV=e3112r8;
LOCATOR=6.4;
assign='college';
end;
end;

** If R reports completing a grade in a previous round that is greater than GRSURV for the current
round and the single item provides a more consistent grade, the single item is used. If the
single item is also inconsistent, then GRSURV value from the previous round is used.
Note: don't use single item if it is greater than 12 and no college is reported;

if 0<grsurvP<95 & 0<GRSURV<grsurvP then disagre=1;

if disagre=1 then do;

rnd_dif=7-dli_rnd+1;
sitm_pr=e3112r8-grsurvP;

if 0<=e3112r8<=12 then do;
subprev=1;
GRSURV=grsurvP;
GRJUNE=grsurvP;
LOCATOR=7.11;
LOC=7.11;
assign='disagre: REPLACE WITH SINGLE ITEM or PREV';
if (0<=sitm_pr<=rnd_dif)|grsurvP=95 then do;
subsitm=1;
GRSURV=e3112r8;
GRJUNE=-3;
LOCATOR=7.12;
LOC=7.12;
if grsurvP=e3112r8 then do;
GRJUNE=grsurvP;
LOC=7.13;
end;
end;
end;

if ((12<e3112r8<95)|(12<grsurvP<95)) & ENCAT in (4,5,6,7,9,10,11) then do;
GRSURV=grsurvP;
subprev=1;
LOCATOR=7.21;
assign='disagre: college REPORTED, SINGLE ITEM or PRIOR round';
if 0<=sitm_pr<=rnd_dif then do;
subsitm=1;
GRSURV=e3112r8;
LOCATOR=7.22;
end;
end;

if ((12<e3112r8<95)|(12<grsurvP<95)) & ENCAT in (1,8,-3) then do;
GRSURV=-3;
GRJUNE=-3;
LOCATOR=7.3;
LOC=7.3;
assign='disagre: NO college REPORTED';
end;

if ((12<e3112r8<95)|(12<grsurvP<95)) & ENCAT in (2,3) then do;
GRSURV=12;
GRJUNE=-3;
if 12<=grsurvP<95 then do;
GRJUNE=12;
LOC=7.41;
end;
LOCATOR=7.4;
if setto12~=1 then loc=7.42;
end;
end;


*** [IIB] If not enrolled SDLI;

** Assign previous HGC. If previous HGC is missing, then assign single item (e3112).;

* Note for USER'S GUIDE: every R who reports not being enrolled SDLI is given the HGC at DLI except
for those who report receiving a GED or H.S. Diploma during the interim. The latter are assigned a
highest grade completed of 12. Some of these Rs who were not enrolled SDLI report HGC higher than
HGC from last interview. We do not use this new information for the computation of their HGC as
this information is not consistent.;

if e3878r8=0 & locator~=5 then do;*& grsurvP>=0;
subprev=1;
GRSURV=grsurvP;
GRJUNE=grsurvP;
LOCATOR=8.1;
LOC=8.1;
end;
if e3878r8=0 & grsurvP<=0 & locator~=5 & locator_LR~=11 then do;
subsitm=1;
GRSURV=e3112r8;
GRJUNE=-3;
LOCATOR=8.2;
LOC=8.2;
end;

** If R doesn't report any college but reports a completed grade higher than 12, we code GRSURV=12
as long as R has at least a GED or a H.S. Diploma. If R does not have either we code GRSURV=-3. A
person reporting going to a 2/4-yr college for a vocational training but reporting a highest
grade completed of more than 12 would also fall in this category. If date of receipt of GED or HS
Diploma is on or before June 2004 then GRJUNE is also set to 12. If not and maxgrade is invalid
then GRJUNE is set to grsurvP. If maxgrade is valid then GRJUNE has already been set by the code
above. If dates are invalid then GRJUNE is set to -3.;

if 12<GRSURV<95 & ENCAT in (1,2,3,8,-3) then do;
if GED=1|HSD=1 then do;
setto12=1;
GRSURV=12;
LOCATOR=9.1;
if CDTGD=-3|CDTHS=-3 then do;
GRJUNE=-3;
LOC=9.11;
end;
if CDTGD>JUNEYR & maxgrade<=0 then do;
GRJUNE=grsurvP;
LOC=9.12;
end;
if CDTHS>JUNEYR & maxgrade<=0 then do;
GRJUNE=grsurvP;
LOC=9.13;
end;
if 0<CDTGD<=JUNEYR then do;
GRJUNE=12;
LOC=9.14;
end;
if 0<CDTHS<=JUNEYR then do;
GRJUNE=12;
LOC=9.15;
end;
if ENCAT=-3 & encatP in (4,5,6,7,9,10,11) then do; ** Modified on 10-13-2005;
GRSURV=grsurvP;
GRJUNE=grsurvP;
LOCATOR=9.2;
LOC=9.2;
end;
end;
if GED=0 & HSD=0 then do;
GRSURV=-3;
GRJUNE=-3;
LOCATOR=9.3;
LOC=9.3;
end;
end;

if GRSURV=-3 then do;
GRJUNE=-3;
LOC=10.1;
end;

if GRSURV in (-55,-2,-16,0) then do;
GRSURV=-3;
GRJUNE=-3;
LOCATOR=10;
LOC=10.2;
end;


if GRJUNE=. then do;
if e3878r8=0 then do;
GRJUNE=GRSURV;
LOC=11;
end;
if maxgrade=GRSURV & ((comp_yr=YEAR & comp_mo>MONTH)|comp_yr>YEAR) then do;
GRJUNE=grsurvP;
LOC=12;
end;
if maxgrade=GRSURV & 0<comp_yr<YEAR & comp_mo=-2 then do;
GRJUNE=grsurv;
LOC=13;
end;
if comp_yr=-2 & comp_mo=-2 then do;
GRJUNE=-3;
LOC=14;
end;
end;

if grsurvP=GRSURV & GRJUNE~=grsurvP then do;
GRJUNE=grsurvP;
LOC=15;
end;
if GRJUNE=. then do;
GRJUNE=-3;
LOC=16;
end;
if ENCAT in (4,5,6,7,9,10,11) then do;
GRJUNE=-4;
LOC=17;
end;

** Cases where R reported a higher grade in e3112 (HGC) than was reported in the last round that
they were interviewed and who indicate their e2857 (HGA) is at least two grade higher than the
grsurvP value, but for those who indicated that they were not enrolled GRSURV should be coded -3
since the R is providing conflicting information.;

if e3878r8=0 & (GRSURV=grsurvP<e3112r8<=12) & e2857r8-2>=GRSURV>0 & e2857r8~=hgaP then do;
GRSURV=-3;
GRJUNE=-3;
LOCATOR=11;
LOC=18;
assign='CONFLICTING INFORMATION';
end;

** chkgrjune is a problem and must be handedited. chkgrjune is ok;
if subprev=1 & grsurv=grsurvP & grjune=grsurvP then do;
if dlicm>JUNEYR then do;
chkgrjune=1;
if e3878r7=0 then chkgrjune=2;
end;
*if 0<compyr<=YEAR then chkgrjune=0;
end;


********************************************************************************************
*** [IV] CREATED VARIABLE - HIGHEST DEGREE RECEIVED AS OF THE SURVEY DATE (DEGSURV) ***
********************************************************************************************;
DEGSURV=0;

** GED;
if GED=1 then DEGSURV=1;
if GED=-3 then DEGSURV=-3;

** High School Diploma;
if HSD=1 then DEGSURV=2;
if HSD=-3 then DEGSURV=-3;

** Junior College or two-year Associate Degree;
if CDTAA>-4 then DEGSURV=3;

** Bachelor's Degree;
if CDTBA>-4 then DEGSURV=4;

** Master's Degree;
if CDTMA>-4 then DEGSURV=5;

** Doctoral Degree;
if CDTDC>-4 then DEGSURV=6;

** Professional Degree;
if CDTPF>-4 then DEGSURV=7;

** If degree received cannot determine what degree received;
do i=1 to dim(e23450);
if e23450(i) in (-1, -2, -3) then DEGSURV=-3;
end;

/* DELETED
** To constrain degsurv by the degsurv from the last interviewed round;
degsurvP=DEGSURV_r6;
if DEGSURV_r6=-5 then do;
degsurvP=DEGSURV_r5;
if DEGSURV_r5=-5 then do;
degsurvP=DEGSURV_r4;
if DEGSURV_r4=-5 then do;
degsurvP=DEGSURV_r3;
if DEGSURV_r3=-5 then do;
degsurvP=DEGSURV_r2;
if DEGSURV_r2=-5 then do;
degsurvP=DEGSURV_r1;
end;
end;
end;
end;
end;
*/
** Check these cases as they should not occur;
if 0<=DEGSURV<degsurvP & e3112r8~=-5 then prev_deg=1;

** HANDEDITS (): The DEGSURV in the previous round is wrong and so cannot use that information to
overwrite the DEGSURV computed in this round.;


****************************************************************************************
*** [V] CREATED VARIABLE - HIGHEST DEGREE COMPLETED AS OF JUNE 30, 2004 (DEGJUNE) ***
****************************************************************************************;

DEGJUNE=0;

** GED;
if 0<CDTGD<=JUNEYR then DEGJUNE=1;
if CDTGD in (-3, -2, -1) then DEGJUNE=-3;

** High School Diploma;
if 0<CDTHS<=JUNEYR then DEGJUNE=2;
if CDTHS in (-3, -2, -1) then DEGJUNE=-3;

** Junior College or 2-year Associate Degree;
if 0<CDTAA<=JUNEYR then DEGJUNE=3;
if CDTAA in (-3, -2, -1) then DEGJUNE=-3;

** Bachelor's Degree;
if 0<CDTBA<=JUNEYR then DEGJUNE=4;
if CDTBA in (-3, -2, -1) then DEGJUNE=-3;

** Master's Degree;
if 0<CDTMA<=JUNEYR then DEGJUNE=5;
if CDTMA in (-3, -2, -1) then DEGJUNE=-3;

** Doctoral Degree;
if 0<CDTDC<=JUNEYR then DEGJUNE=6;
if CDTDC in (-3, -2, -1) then DEGJUNE=-3;

** Professional Degree;
if 0<CDTPF<=JUNEYR then DEGJUNE=7;
if CDTPF in (-3, -2, -1) then DEGJUNE=-3;


** Constrain degjune by prevdegsruv if the latter is equal to degsruv in this round;
if DEGJUNE~=DEGSURV & DEGSURV=degsurvP & DEGSURV>=0 & DEGJUNE>=0 then do;
DEGJUNE=degsurvP;
end;

if DEGSURV=-3 then DEGJUNE=-3;

if (DEGSURV=1 & -4<CDTGD<=0)|(DEGSURV=2 & -4<CDTHS<=0)|(DEGSURV=3 & -4<CDTAA<=0)
|(DEGSURV=4 & -4<CDTBA<=0)|(DEGSURV=5 & -4<CDTMA<=0)|(DEGSURV=6 & -4<CDTDC<=0)
|(DEGSURV=7 & -4<CDTPF<=0) then datedeg=1;

if datedeg=1 then DEGJUNE=-3;


if ENCAT in (-1,-2) then ENCAT=-3;
if GRSURV in (-1,-2) then GRSURV=-3;
if GRJUNE in (-1,-2) then GRJUNE=-3;
if DEGSURV in (-1,-2) then DEGSURV=-3;
if DEGJUNE in (-1,-2) then DEGJUNE=-3;

if e3112r8=-5 then do;
ENROLL=-5;
ENCAT=-5;
GRSURV=-5;
GRJUNE=-5;
DEGSURV=-5;
DEGJUNE=-5;
assign ='NON-INTERVIEW';
GED=-5;
HSD=-5;
LOCATOR=-5;
LOC=-5;
end;

if e3112r8~=-5 then do;
chkdeg2=0;
if HGDEGr8-degsurv~=1 then chkdeg2=1;
if HGDEGr8=degsurv & HGDEGr8=-3 then chkdeg2=0;
end;


chk1=.; chk2=.; chk3=.; chk4=.; chk5=.; chk6=.;

if ENCAT in (4,5,6,7,9,10,11) then do;
if 0<=grsurv<12 then chk1=1;
if grsurv=95 then chk1=2;
end;

if ENCAT in (1,2,3,8) then do;
if 12<grsurv<95 then chk2=1;
if grsurv=95 then chk2=2;
end;

if ENCAT in (4,5,6,7,9,10,11) & currcoll=0 & 0<=grsurvP<grsurv & wasinclg_DLI~=1 then chk3=1;

if 0<=e2857r8<grsurv then do;
if 0<=e2857r8<grsurvP & e3878r8~=0 then chk4=1.1;
if 0<=e2857r8<maxgrade then chk4=1.2;
if 0<=e2857r8<e3112r8 then chk4=1.3;
if (hsd=1|ged=1) & grsurv=12 then chk4=.;
end;

if degsurv=0 & ENCAT in (2,3,4,5,6,7,9,10,11) then chk5=1;
if degsurv=1 & ENCAT in (1,8,3,5,6,7) then chk5=2;
if degsurv=2 & ENCAT in (1,8,2,5,6,7) then chk5=3;
if degsurv=3 & ENCAT in (1,8,2,3,6,7) then chk5=4;
if degsurv=4 & ENCAT in (1,8,2,3,5,7) then chk5=5;
if degsurv in (5,6,7) & ENCAT in (1,8,2,3,5,6) then chk5=6;

if ENCAT=-3 & grsurv~=-3 then do;
chk6=1;
if locator=11 then chk6=2;
end;

if 0<=e2857r8<6 & ENCAT in (4,5,6,7,9,10,11) then z=e2857r8+12;
if z=. then chk4z=chk4;
if 0<=z<grsurv then do;
if 0<=z<grsurvP & e3878r8~=0 then chk4z=1.1;
if 0<=z<maxgrade then chk4z=1.2;
if 0<=z<e3112r8 then chk4z=1.3;
if (hsd=1|ged=1) & grsurv=12 then chk4z=.;
end;

ENDSAS;
 

Return to top


Current or Most Recent School Private or Parochial

Variables Created:  CV_SCHOOL_TYPE (SLTYPE)

Variables Used

Name in Program

Question Name on CD

 

Name in Program

Question Name on CD

TYPER1 CV_SCHOOL_TYPE_1997   SSTOP1Y2 NEWSCHOOL_STOP1.02~Y
TYPER2 CV_SCHOOL_TYPE_1998   SSTOP1M3 NEWSCHOOL_STOP1.03~M
TYPER3 CV_SCHOOL_TYPE_1999   SSTOP1Y3 NEWSCHOOL_STOP1.03~Y
TYPER4 CV_SCHOOL_TYPE_2000   SSTOP1M4 NEWSCHOOL_STOP1.04~M
TYPER5 CV_SCHOOL_TYPE_2001   SSTOP1Y4 NEWSCHOOL_STOP1.04~Y
TYPER6 CV_SCHOOL_TYPE_2002   SSTOP1M5 NEWSCHOOL_STOP1.05~M
SPERIOD1 NEWSCHOOL_PERIODS.01   SSTOP1Y5 NEWSCHOOL_STOP1.05~Y
SPERIOD2 NEWSCHOOL_PERIODS.02   SSTOP2M1 NEWSCHOOL_STOP2.01~M
SPERIOD3 NEWSCHOOL_PERIODS.03   SSTOP2Y1 NEWSCHOOL_STOP2.01~Y
SPERIOD4 NEWSCHOOL_PERIODS.04   SSTOP2M2 NEWSCHOOL_STOP2.02~M
SPERIOD5 NEWSCHOOL_PERIODS.05   SSTOP2Y2 NEWSCHOOL_STOP2.02~Y
SCODE1 NEWSCHOOL_SCHCODE.01   SSTOP3M1 NEWSCHOOL_STOP3.01~M
SCODE2 NEWSCHOOL_SCHCODE.02   SSTOP3Y1 NEWSCHOOL_STOP3.01~Y
SCODE3 NEWSCHOOL_SCHCODE.03   STYPE1 NEWSCHOOL_TYPE.01
SCODE4 NEWSCHOOL_SCHCODE.04   STYPE2 NEWSCHOOL_TYPE.02
SCODE5 NEWSCHOOL_SCHCODE.05   STYPE3 NEWSCHOOL_TYPE.03
SSTOP1M1 NEWSCHOOL_STOP1.01~M   STYPE4 NEWSCHOOL_TYPE.04
SSTOP1Y1 NEWSCHOOL_STOP1.01~Y   STYPE5 NEWSCHOOL_TYPE.05
SSTOP1M2 NEWSCHOOL_STOP1.02~M   pubid PUBID

Codes for Created Variable

1 = Public school
2 = Private, not parochial 
3 = Parochial
4 = Other

Code for new school
1='Elementary school'
2='Middle school/intermediate school/junior high sch
3='High school'
4='Two-year college, community college, or junior co
5='Four year college or university'
6='No information'

Code for new school type
1='1. Public school'
2='2. Technical or vocational high school'
3='3. Catholic school'
4='4. Private school-other religious affiliation'
5='5. Private school-no religious affiliation'
6='6. Alternative school'
9='9. OTHER (SPECIFY)'
10='10. Home School'
11='11. Detention/Rehab'
12='12. Charter School'
13='13. Magnet School'

This program is used to create the school type variables from Round 8, i.e. the current or most recent schools that the youth attended are public, private, parochial or other. This is completed in the following steps:

1) We first decide which school is the most recent school (non-college) that the youth participated by the ending date for different enrollment periods.
2) We can get the school type from the new school roster. However, in the program, these two steps can not be separated.


/* create the array variables.*/

* # of enrollment periods;
array speriod speriod1-speriod5;

* ending date for each period;
array sstop1m sstop1m1-sstop1m5;
array sstop1y sstop1y1-sstop1y5;
array sstop2m sstop2m1-sstop2m2;
array sstop2y sstop2y1-sstop2y2;
array sstop3m sstop3m1 sstop3m2;
array sstop3y sstop3y1 sstop3y2;

* school code, i.e. elementary school, high school or college;
array scode scode1-scode5;

*school type for round 8;
array stype stype1-stype5;

* ending time for each school;
array srecm srecm1-srecm5;
array srecy srecy1-srecy5;

* school length counting both month&year: the month length from jan. 1990 to the ending month for each school;
array mlength mlength1-mlength5;

* school length counting only year: the year length from 1990 to the ending year for each school;
* this variable is to take care of the situation where ending year is invalid;
array ylength ylength1-ylength5;

/***** step 1).In the process to decide the most recent school. *****/

do i=1 to 5;

srecm[i]=-4;
srecy[i]=-4;

if speriod[i]=1 and scode[i] in (1,2,3) then do;
srecm[i]=sstop1m[i];
srecy[i]=sstop1y[i];
end;

if speriod[i]=2 and scode[i] in (1,2,3) then do;
srecm[i]=sstop2m[i];
srecy[i]=sstop2y[i];
end;

if speriod[i]=3 and scode[i] in (1,2,3) then do;
srecm[i]=sstop3m[i];
srecy[i]=sstop3y[i];
end;

if srecm[i] gt 0 and srecy[i] gt 0 then mlength[i]=12*(srecy[i]-1990)+srecm[i];
else mlength[i]=-4;

if srecy[i] gt 0 then ylength[i]=srecy[i]-1990;
else ylength[i]=-4;

end;


maxmleng=max(mlength1,mlength2, mlength3, mlength4, mlength5 );
if stype1=-5 then maxmleng=-5;

maxyleng=max(ylength1,ylength2, ylength3, ylength4, ylength5);
if stype1=-5 then maxyleng=-5;


/***** step 2). Decide the latest non-college school and its type*****/
type1=-4;

***** create the flag variables;

* flag the cases where multiple schools' ending year/month are same as "maxmleng";
maxmeq=0;
do i=1 to 5;
if maxmleng>0 and mlength[i]=maxmleng then maxmeq=maxmeq+1;
end;

* flag the cases where multiple schools' ending year are the same as "maxyleng" and ending months are invalid answer;
invalidm=0; maxyeq=0;
do i=1 to 5;
if maxyleng>0 and ylength[i]=maxyleng and srecm[i] in (-1,-2,-3) then invalidm=invalidm+1;
if maxyleng>0 and ylength[i]=maxyleng then maxyeq=maxyeq+1;
end;

***** first step to create school type;

* use only the year information first;
do i=1 to 5;
if maxyleng>0 and ylength[i]=maxyleng then type1=stype[i];
end;



* then use the month information to make it more precise;


do i=1 to 5;
if maxmleng>0 and mlength[i]=maxmleng then type1=stype[i];
end;



***** Fix the special cases where multiple schools' ending years are same as maxyleng;

/* go back to fix the case such as 97.12 and 99.-2. because if "maxmleng" cover "maxyleng", the codes above
will pick up the school ending on 97.12 as most recent school.*/

if maxyeq=1 then do;
do i=1 to 5;
if ylength[i]=maxyleng then type1=stype[i];
end;
end;

if invalidm ge 2 then type1=-3;






* flag the cases which has 98.02 and 98.-3;
flag=0;
if maxyeq ge 2 and invalidm ge 1 then flag=1;

if flag=1 then type1=-3; /* There were no such cases in round 4, but there are a couple of cases in round 5*/






* fix the case such as 99.12, 99.-2 99.-3 or 2000.12 2000.-2;

if maxyeq ge 2 then do;
do i=1 to 5;
if ylength[i]=maxyleng and srecm[i]=12 then do;
type1=stype[i];
flag2=1;
end;
end;
end;


***** Fix the special cases where multiple schools ending year/months are same as maxmleng;
/*This loop assigns value of PUBLIC schools (1) to TYPE1 in cases where one reported school type=public
and one reported school type="other". In cases where one reported school type=PRIVATE and one reported
type="other", value for PRIVATE school type is assigned. Cases where one school type=PUBLIC and another
school type=PRIVATE are flagged and looked into. */

*dummy for one school is public school and the other is religious school;
pubrelg=0;

*dummy for one school is public school and the other is private school;
pubpriv=0;

*dummy for one school is private and the other is religious school;
privrelg=0;





if maxmeq ge 2 then do;
do i=1 to 5;
if mlength(i)=maxmleng and stype(i)^=type1 then do;
if stype(i) in (6,9,10,11,-1,-2,-3) and type1 in (1,2,12,13) then type1=type1;
if stype(i) in (1,2,12,13) and type1 in (6,9,10,11,-1,-2,-3) then type1=stype[i];
if stype(i) in (6,9,10,11,-1,-2,-3) and type1 in (3,4) then type1=type1;
if stype(i) in (3,4) and type1 in (6,9,10,11,-1,-2,-3) then type1=stype[i];
if stype(i) in (6,9,10,11,-1,-2,-3) and type1=5 then type1=5;
if stype(i)=5 and type1 in (6,9,10,11,-1,-2,-3) then type1=5;
if (stype(i) in (1,2,12,13) and type1 in (3,4)) or
(stype(i) in (3,4) and type1 in (1,2,12,13)) then pubrelg=1;
if (stype(i) in (1,2,12,13) and type1=5) or
(stype(i)=5 and type1 in (1,2,12,13)) then pubpriv=1;
if (stype(i)=5 and type1 in (3,4)) or
(stype(i) in (3,4) and type1=5) then privrelg=1;
end;
end;
end;




***** Invalid answers;

* for the invalid answers;
if scode1 in (-1,-2,-3)
or scode2 in (-1,-2,-3)
or scode3 in (-1,-2,-3)
or scode4 in (-1,-2,-3)
then type1=-3;

if (scode1 in (1,2,3) and srecy1 in (-1,-2,-3))
or (scode2 in (1,2,3) and srecy2 in (-1,-2,-3))
or (scode3 in (1,2,3) and srecy3 in (-1,-2,-3))
or (scode4 in (1,2,3) and srecy4 in (-1,-2,-3))
then type1=-3;

* if the respondent only goes to one school in r8,input that school type;
if scode1 in (1,2,3)
and scode2 in (-4, 4, 5)
and scode3 in (-4, 4, 5)
and scode4 in (-4, 4, 5)
then type1=stype1;


/***** recode the type variable.*****/

sltype=-4;
if type1 in (1,2,12,13) then sltype=1;
if type1=5 then sltype=2;
if type1 in (3,4) then sltype=3;
if type1 in (6,9,10,11) then sltype=4;
if -4<type1<0 then sltype=-3;
if stype1=-5 then sltype=-5;





* Hand edit other cases who got "-3" because of stopping date but have same school type for all valid schools
or the most recent school is detectable from the other information such as intervieww date;
flag1=0;
flag2=0;
if sltype=-3 and stype1=stype2 and stype1>0 then flag1=1;
if flag1=1 then sltype=1;
if int_y=-5 then sltype=-5;

/* fix special cases. There are 12 cases. Respondents attented two schools.
The school type for later one is missing. Coded created variable as -3;*/
if pubid in
(552,
1197,
1346,
1695,
2258,
3218,
3388,
4667,
6162,
7339,
7529,
8319) then sltype=-3;




endsas;


Return to top


Date Received Diploma or Degree

Variables Created: 

 Variables Used

Name in Program

Question Name on CD

 

Name in Program

Question Name on CD

 

Name in Program

Question Name on CD

Round 1     Round 4 cont'd     Round 7  
gdr1 CV_GED   e21300r4_105 YSCH-21300.01.05   gdr7 CV_GED
hsr1 CV_HS_DIPLOMA   e21300r4_106 YSCH-21300.01.06   hsr7 CV_HS_DIPLOMA
doicmr1 CV_INTERVIEW_CMONTH   e21300r4_107 YSCH-21300.01.07   aar7 CV_AA_DEGREE
intdr1 CV_INTERVIEW_DATE~D   e21300r4_108 YSCH-21300.01.08   bar7 CV_BA_DEGREE
intmr1 CV_INTERVIEW_DATE~M   e21300r4_201 YSCH-21300.02.01   mar7 CV_MA_DEGREE
intyr1 CV_INTERVIEW_DATE~Y   e21300r4_202 YSCH-21300.02.02   doicmr7 CV_INTERVIEW_CMONTH
e21300r1_101 YSCH-21300.01.01   e21300r4_203 YSCH-21300.02.03   intdr7 CV_INTERVIEW_DATE~D
e21300r1_102 YSCH-21300.01.02   e21300r4_204 YSCH-21300.02.04   intmr7 CV_INTERVIEW_DATE~M
e21400r1_101 YSCH-21400.01.01   e21300r4_205 YSCH-21300.02.05   intyr7 CV_INTERVIEW_DATE~Y
e21400r1_102 YSCH-21400.01.02   e21300r4_206 YSCH-21300.02.06   e27337r7_1  YSCH-27337.01
      e21300r4_301 YSCH-21300.03.01   e27337r7_2 YSCH-27337.02
Round 2     e21300r4_302 YSCH-21300.03.02   e27337r7_3 YSCH-27337.03
gdr2 CV_GED   e21300r4_401 YSCH-21300.04.01   e27337r7_4 YSCH-27337.04
hsr2 CV_HS_DIPLOMA   e21300r4_402 YSCH-21300.04.02   e27337r7_5 YSCH-27337.05
doicmr2 CV_INTERVIEW_CMONTH   e21400r4_101 YSCH-21400.01.01   e23450r7_1 YSCH-23450.01
intdr2 CV_INTERVIEW_DATE~D   e21400r4_102 YSCH-21400.01.02   e23450r7_2 YSCH-23450.02
intmr2 CV_INTERVIEW_DATE~M   e21400r4_103 YSCH-21400.01.03   e23450r7_3 YSCH-23450.03
intyr3 CV_INTERVIEW_DATE~Y   e21400r4_104  YSCH-21400.01.04   lftscr7_1 NEWSCHOOL_LEFT.01
e27337r2_1  YSCH-27337.01   e21400r4_105 YSCH-21400.01.05   lftscr7_2 NEWSCHOOL_LEFT.02
e27337r2_2 YSCH-27337.02   e21400r4_106 YSCH-21400.01.06   lftscr7_3 NEWSCHOOL_LEFT.03
e27337r2_3 YSCH-27337.03   e21400r4_107 YSCH-21400.01.07   lftscr7_4 NEWSCHOOL_LEFT.04
e27337r2_4 YSCH-27337.04   e21400r4_108 YSCH-21400.01.08   lftscr7_5 NEWSCHOOL_LEFT.05
e27337r2_5 YSCH-27337.05   e21400r4_201 YSCH-21400.02.01   scoder7_1 NEWSCHOOL_SCHCODE.01
e23450r2_1 YSCH-23450.01   e21400r4_202 YSCH-21400.02.02   scoder7_2 NEWSCHOOL_SCHCODE.02
e23450r2_2 YSCH-23450.02   e21400r4_203 YSCH-21400.02.03   scoder7_3 NEWSCHOOL_SCHCODE.03
e23450r2_3 YSCH-23450.03   e21400r4_204 YSCH-21400.02.04   scoder7_4 NEWSCHOOL_SCHCODE.04
e23450r2_4 YSCH-23450.04   e21400r4_205  YSCH-21400.02.05   scoder7_5 NEWSCHOOL_SCHCODE.05
stopmr2_11 NEWSCHOOL_STOP1.01~M   e21400r4_206  YSCH-21400.02.06   stopmr7_11 NEWSCHOOL_STOP1.01~M
stopyr2_11 NEWSCHOOL_STOP1.01~Y   e21400r4_301 YSCH-21400.03.01   stopyr7_11 NEWSCHOOL_STOP1.01~Y
stopmr2_12 NEWSCHOOL_STOP1.02~M   e21400r4_302  YSCH-21400.03.02   stopmr7_12 NEWSCHOOL_STOP1.02~M
stopyr2_12 NEWSCHOOL_STOP1.02~Y   e21400r4_401 YSCH-21400.04.01   stopyr7_12 NEWSCHOOL_STOP1.02~Y
stopmr2_13 NEWSCHOOL_STOP1.03~M   e21400r4_402 YSCH-21400.04.02   stopmr7_13 NEWSCHOOL_STOP1.03~M
stopyr2_13 NEWSCHOOL_STOP1.03~Y   schidr4_1  NEWSCHOOL_PUBID.01   stopyr7_13 NEWSCHOOL_STOP1.03~Y
stopmr2_14 NEWSCHOOL_STOP1.04~M   schidr4_2 NEWSCHOOL_PUBID.02   stopmr7_14 NEWSCHOOL_STOP1.04~M
stopyr2_14 NEWSCHOOL_STOP1.04~Y   schidr4_3 NEWSCHOOL_PUBID.03   stopyr7_14 NEWSCHOOL_STOP1.04~Y
stopmr2_15 NEWSCHOOL_STOP1.05~M   schidr4_4  NEWSCHOOL_PUBID.04   stopmr7_15 NEWSCHOOL_STOP1.05~M
stopyr2_15 NEWSCHOOL_STOP1.05~Y   schidr4_5  NEWSCHOOL_PUBID.05   stopyr7_15 NEWSCHOOL_STOP1.05~Y
stopmr2_16 NEWSCHOOL_STOP1.06~M         stopmr7_21 NEWSCHOOL_STOP2.01~M
stopyr2_16 NEWSCHOOL_STOP1.06~Y   Round 5     stopyr7_21 NEWSCHOOL_STOP2.01~Y
stopmr2_21 NEWSCHOOL_STOP2.01~M   gdr5 CV_GED   stopmr7_22 NEWSCHOOL_STOP2.02~M
stopyr2_21 NEWSCHOOL_STOP2.01~Y   hsr5 CV_HS_DIPLOMA   stopyr7_22 NEWSCHOOL_STOP2.02~Y
stopmr2_22 NEWSCHOOL_STOP2.02~M   aar5 CV_AA_DEGREE   stopmr7_31 NEWSCHOOL_STOP3.01~M
stopyr2_22 NEWSCHOOL_STOP2.02~Y   bar5 CV_BA_DEGREE   stopyr7_31 NEWSCHOOL_STOP3.01~Y
stopmr2_23 NEWSCHOOL_STOP2.03~M   doicmr5 CV_INTERVIEW_CMONTH   e21300r7_101 YSCH-21300.01.01
stopyr2_23 NEWSCHOOL_STOP2.03~Y   intdr5 CV_INTERVIEW_DATE~D   e21300r7_102 YSCH-21300.01.02
stopmr2_24 NEWSCHOOL_STOP2.04~M   intmr5 CV_INTERVIEW_DATE~M   e21300r7_103 YSCH-21300.01.03
stopyr2_24 NEWSCHOOL_STOP2.04~Y   intyr5 CV_INTERVIEW_DATE~Y   e21300r7_104  YSCH-21300.01.04
stopmr2_31 NEWSCHOOL_STOP3.01~M   e27337r5_1  YSCH-27337.01   e21300r7_105 YSCH-21300.01.05
stopyr2_31 NEWSCHOOL_STOP3.01~Y   e27337r5_2 YSCH-27337.02   e21300r7_106 YSCH-21300.01.06
scoder2_1 NEWSCHOOL_SCHCODE.01   e27337r5_3 YSCH-27337.03   e21300r7_107 YSCH-21300.01.07
scoder2_2 NEWSCHOOL_SCHCODE.02   e27337r5_4 YSCH-27337.04   e21300r7_108 YSCH-21300.01.08
scoder2_3 NEWSCHOOL_SCHCODE.03   e27337r5_5 YSCH-27337.05   e21300r7_109 YSCH-21300.01.09
scoder2_4 NEWSCHOOL_SCHCODE.04   e27337r5_6 YSCH-27337.06   e21300r7_201 YSCH-21300.02.01
scoder2_5 NEWSCHOOL_SCHCODE.05   e23450r5_1 YSCH-23450.01   e21300r7_202 YSCH-21300.02.02
scoder2_6  NEWSCHOOL_SCHCODE.06   e23450r5_2 YSCH-23450.02   e21300r7_203 YSCH-21300.02.03
lftscr2_1 NEWSCHOOL_LEFT.01   e23450r5_3 YSCH-23450.03   e21300r7_204 YSCH-21300.02.04
lftscr2_2 NEWSCHOOL_LEFT.02   e23450r5_4 YSCH-23450.04   e21300r7_205 YSCH-21300.02.05
lftscr2_3 NEWSCHOOL_LEFT.03   e23450r5_5 YSCH-23450.05   e21300r7_206 YSCH-21300.02.06
lftscr2_4 NEWSCHOOL_LEFT.04   e23450r5_6 YSCH-23450.06   e21300r7_207 YSCH-21300.02.07
lftscr2_5 NEWSCHOOL_LEFT.05   lftscr5_1 NEWSCHOOL_LEFT.01   e21300r7_208 YSCH-21300.02.08
lftscr2_6 NEWSCHOOL_LEFT.06   lftscr5_2 NEWSCHOOL_LEFT.02   e21300r7_209 YSCH-21300.02.09
lftsc2r2_2 NEWSCHOOL_LEFT2.02   lftscr5_3 NEWSCHOOL_LEFT.03   e21300r7_301 YSCH-21300.03.01
lftsc2r2_3 NEWSCHOOL_LEFT2.03   lftscr5_4 NEWSCHOOL_LEFT.04   e21300r7_302 YSCH-21300.03.02
lftsc2r2_4 NEWSCHOOL_LEFT2.04   lftscr5_5 NEWSCHOOL_LEFT.05   e21300r7_303 YSCH-21300.03.03
e21300r2_101 YSCH-21300.01.01   lftscr5_6 NEWSCHOOL_LEFT.06   e21300r7_401 YSCH-21300.04.01
e21300r2_102 YSCH-21300.01.02   stopmr5_11 NEWSCHOOL_STOP1.01~M   e21300r7_501 YSCH-21300.05.01
e21300r2_103 YSCH-21300.01.03   stopyr5_11 NEWSCHOOL_STOP1.01~Y   e21400r7_101 YSCH-21400.01.01
e21300r2_104  YSCH-21300.01.04   stopmr5_12 NEWSCHOOL_STOP1.02~M   e21400r7_102 YSCH-21400.01.02
e21300r2_105 YSCH-21300.01.05   stopyr5_12 NEWSCHOOL_STOP1.02~Y   e21400r7_103 YSCH-21400.01.03
e21300r2_201 YSCH-21300.02.01   stopmr5_13 NEWSCHOOL_STOP1.03~M   e21400r7_104  YSCH-21400.01.04
e21300r2_202 YSCH-21300.02.02   stopyr5_13 NEWSCHOOL_STOP1.03~Y   e21400r7_105 YSCH-21400.01.05
e21300r2_203 YSCH-21300.02.03   stopmr5_14 NEWSCHOOL_STOP1.04~M   e21400r7_106 YSCH-21400.01.06
e21300r2_204 YSCH-21300.02.04   stopyr5_14 NEWSCHOOL_STOP1.04~Y   e21400r7_107 YSCH-21400.01.07
e21300r2_205 YSCH-21300.02.05   stopmr5_15 NEWSCHOOL_STOP1.05~M   e21400r7_108 YSCH-21400.01.08
e21300r2_301 YSCH-21300.03.01   stopyr5_15 NEWSCHOOL_STOP1.05~Y   e21400r7_109 YSCH-21400.01.09
e21300r2_302 YSCH-21300.03.02   stopmr5_16 NEWSCHOOL_STOP1.06~M   e21400r7_201 YSCH-21400.02.01
e21300r2_303 `YSCH-21300.03.03   stopyr5_16 NEWSCHOOL_STOP1.06~Y   e21400r7_202 YSCH-21400.02.02
e21300r2_304 YSCH-21300.03.04 `   stopmr5_21 NEWSCHOOL_STOP2.01~M   e21400r7_203 YSCH-21400.02.03
e21300r2_305  YSCH-21300.03.05   stopyr5_21 NEWSCHOOL_STOP2.01~Y   e21400r7_204 YSCH-21400.02.04
e21300r2_401 YSCH-21300.04.01   stopmr5_22 NEWSCHOOL_STOP2.02~M   e21400r7_205  YSCH-21400.02.05
e21300r2_501  YSCH-21300.05.01   stopyr5_22 NEWSCHOOL_STOP2.02~Y   e21400r7_206  YSCH-21400.02.06
e21400r2_101 YSCH-21400.01.01   stopmr5_23 NEWSCHOOL_STOP2.03~M   e21400r7_207 YSCH-21400.02.07
e21400r2_102 YSCH-21400.01.02   stopyr5_23 NEWSCHOOL_STOP2.03~Y   e21400r7_208 YSCH-21400.02.08
e21400r2_103 YSCH-21400.01.03   stopmr5_31 NEWSCHOOL_STOP3.01~M   e21400r7_209 YSCH-21400.02.09
e21400r2_104  YSCH-21400.01.04   stopyr5_31 NEWSCHOOL_STOP3.01~Y   e21400r7_301 YSCH-21400.03.01
e21400r2_105 YSCH-21400.01.05   scoder5_1 NEWSCHOOL_SCHCODE.01   e21400r7_302  YSCH-21400.03.02
e21400r2_201 YSCH-21400.02.01   scoder5_2 NEWSCHOOL_SCHCODE.02   e21400r7_303  YSCH-21400.03.03
e21400r2_202 YSCH-21400.02.02   scoder5_3 NEWSCHOOL_SCHCODE.03   e21400r7_401 YSCH-21400.04.01
e21400r2_203 YSCH-21400.02.03   scoder5_4 NEWSCHOOL_SCHCODE.04   schidr7_1  NEWSCHOOL_PUBID.01
e21400r2_204 YSCH-21400.02.04   scoder5_5 NEWSCHOOL_SCHCODE.05   schidr7_2 NEWSCHOOL_PUBID.02
e21400r2_205  YSCH-21400.02.05   scoder5_6 NEWSCHOOL_SCHCODE.06   schidr7_3 NEWSCHOOL_PUBID.03
e21400r2_301 YSCH-21400.03.01   lftsc2r5_2 NEWSCHOOL_LEFT2.02   schidr7_4  NEWSCHOOL_PUBID.04
e21400r2_302  YSCH-21400.03.02   lftsc2r5_3 NEWSCHOOL_LEFT2.03   schidr7_5 NEWSCHOOL_PUBID.05
e21400r2_303 YSCH-21400.03.03   e21300r5_101 YSCH-21300.01.01      
e21400r2_304 YSCH-21400.03.04   e21300r5_102 YSCH-21300.01.02   Round 8  
e21400r2_305 YSCH-21400.03.05   e21300r5_103 YSCH-21300.01.03   doicmr8 CV_INTERVIEW_CMONTH
e21400r2_401  YSCH-21400.04.01   e21300r5_104  YSCH-21300.01.04   intmr8 CV_INTERVIEW_DATE~M
e21400r2_501 YSCH-21400.05.01   e21300r5_105 YSCH-21300.01.05   intyr8 CV_INTERVIEW_DATE~Y
schidr2_1  NEWSCHOOL_PUBID.01   e21300r5_106 YSCH-21300.01.06   e3113r8 YSCH-3113
schidr2_2 NEWSCHOOL_PUBID.02   e21300r5_107 YSCH-21300.01.07   e11700r8 YSCH-11700
schidr2_3 NEWSCHOOL_PUBID.03   e21300r5_201 YSCH-21300.02.01   e11900mr8 YSCH-11900~M
schidr2_4  NEWSCHOOL_PUBID.04   e21300r5_202 YSCH-21300.02.02   e11900yr8 YSCH-11900~Y
schidr2_5  NEWSCHOOL_PUBID.05   e21300r5_203 YSCH-21300.02.03   e13300r8 YSCH-13300
schidr2_6  NEWSCHOOL_PUBID.06   e21300r5_204 YSCH-21300.02.04   e13500mr8 YSCH-13500~M
      e21300r5_205 YSCH-21300.02.05   e13500yr8 YSCH-13500~Y
Round 3     e21300r5_206 YSCH-21300.02.06   e24685r8  YSCH-24685
gdr3 CV_GED   e21300r5_207 YSCH-21300.02.07   e27337r8_1  YSCH-27337.01
hsr3 CV_HS_DIPLOMA   e21300r5_301 YSCH-21300.03.01   e27337r8_2 YSCH-27337.02
aar3 CV_AA_DEGREE   e21300r5_302 YSCH-21300.03.02   e27337r8_3 YSCH-27337.03
bar3 CV_BA_DEGREE   e21300r5_303 YSCH-21300.03.03   e27337r8_4 YSCH-27337.04
doicmr3 CV_INTERVIEW_CMONTH   e21300r5_304 YSCH-21300.03.04   e27337r8_5 YSCH-27337.05
intdr3 CV_INTERVIEW_DATE~D   e21300r5_401 YSCH-21300.04.01   e21300r8_101 YSCH-21300.01.01
intmr3 CV_INTERVIEW_DATE~M   e21300r5_501 YSCH-21300.05.01   e21300r8_102 YSCH-21300.01.02
intyr3 CV_INTERVIEW_DATE~Y   e21300r5_502 YSCH-21300.05.02   e21300r8_103 YSCH-21300.01.03
e27337r3_1  YSCH-27337.01   e21300r5_601 YSCH-21300.06.01   e21300r8_104  YSCH-21300.01.04
e27337r3_2 YSCH-27337.02   e21400r5_101 YSCH-21400.01.01   e21300r8_105 YSCH-21300.01.05
e27337r3_3 YSCH-27337.03   e21400r5_102 YSCH-21400.01.02   e21300r8_106 YSCH-21300.01.06
e27337r3_4 YSCH-27337.04   e21400r5_103 YSCH-21400.01.03   e21300r8_107 YSCH-21300.01.07
e27337r3_5 YSCH-27337.05   e21400r5_104  YSCH-21400.01.04   e21300r8_108 YSCH-21300.01.08
e23450r3_1 YSCH-23450.01   e21400r5_105 YSCH-21400.01.05   e21300r8_109 YSCH-21300.01.09
e23450r3_2 YSCH-23450.02   e21400r5_106 YSCH-21400.01.06   e21300r8_110 YSCH-21300.01.10
e23450r3_3 YSCH-23450.03   e21400r5_107 YSCH-21400.01.07   e21300r8_111 YSCH-21300.01.11
stopmr3_11 NEWSCHOOL_STOP1.01~M   e21400r5_201 YSCH-21400.02.01   e21300r8_112 YSCH-21300.01.12
stopyr3_11 NEWSCHOOL_STOP1.01~Y   e21400r5_202 YSCH-21400.02.02   e21300r8_113 YSCH-21300.01.13
stopmr3_12 NEWSCHOOL_STOP1.02~M   e21400r5_203 YSCH-21400.02.03   e21300r8_201 YSCH-21300.02.01
stopyr3_12 NEWSCHOOL_STOP1.02~Y   e21400r5_204 YSCH-21400.02.04   e21300r8_202 YSCH-21300.02.02
stopmr3_13 NEWSCHOOL_STOP1.03~M   e21400r5_205  YSCH-21400.02.05   e21300r8_203 YSCH-21300.02.03
stopyr3_13 NEWSCHOOL_STOP1.03~Y   e21400r5_206  YSCH-21400.02.06   e21300r8_204 YSCH-21300.02.04
stopmr3_14 NEWSCHOOL_STOP1.04~M   e21400r5_207 YSCH-21400.02.07   e21300r8_205 YSCH-21300.02.05
stopyr3_14 NEWSCHOOL_STOP1.04~Y   e21400r5_301 YSCH-21400.03.01   e21300r8_206 YSCH-21300.02.06
stopmr3_15 NEWSCHOOL_STOP1.05~M   e21400r5_302  YSCH-21400.03.02   e21300r8_207 YSCH-21300.02.07
stopyr3_15 NEWSCHOOL_STOP1.05~Y   e21400r5_303  YSCH-21400.03.03   e21300r8_208 YSCH-21300.02.08
stopmr3_16 NEWSCHOOL_STOP1.06~M   e21400r5_401 YSCH-21400.04.01   e21300r8_301 YSCH-21300.03.01
stopyr3_16 NEWSCHOOL_STOP1.06~Y   e21400r5_501 YSCH-21400.05.01   e21300r8_302 YSCH-21300.03.02
stopmr3_17 NEWSCHOOL_STOP1.07~M   e21400r5_502 YSCH-21400.05.02   e21300r8_303 YSCH-21300.03.03
stopyr3_17 NEWSCHOOL_STOP1.07~Y   e21400r5_601 YSCH-21400.06.01   e21300r8_304 YSCH-21300.03.04
stopmr3_21 NEWSCHOOL_STOP2.01~M   schidr5_1  NEWSCHOOL_PUBID.01   e21300r8_305 YSCH-21300.03.05
stopyr3_21 NEWSCHOOL_STOP2.01~Y   schidr5_2 NEWSCHOOL_PUBID.02   e21300r8_401 YSCH-21300.04.01
stopmr3_22 NEWSCHOOL_STOP2.02~M   schidr5_3 NEWSCHOOL_PUBID.03   e21400r8_101 YSCH-21400.01.01
stopyr3_22 NEWSCHOOL_STOP2.02~Y   schidr5_4  NEWSCHOOL_PUBID.04   e21400r8_102 YSCH-21400.01.02
stopmr3_23 NEWSCHOOL_STOP2.03~M   schidr5_5  NEWSCHOOL_PUBID.05   e21400r8_103 YSCH-21400.01.03
stopyr3_23 NEWSCHOOL_STOP2.03~Y   schidr5_6  NEWSCHOOL_PUBID.06   e21400r8_104  YSCH-21400.01.04
stopmr3_24 NEWSCHOOL_STOP2.04~M         e21400r8_105 YSCH-21400.01.05
stopyr3_24 NEWSCHOOL_STOP2.04~Y   Round 6     e21400r8_106 YSCH-21400.01.06
stopmr3_31 NEWSCHOOL_STOP3.01~M   gdr6 CV_GED   e21400r8_107 YSCH-21400.01.07
stopyr3_31 NEWSCHOOL_STOP3.01~Y   hsr6 CV_HS_DIPLOMA   e21400r8_108 YSCH-21400.01.08
stopmr3_32 NEWSCHOOL_STOP3.02~M   aar6 CV_AA_DEGREE   e21400r8_109 YSCH-21400.01.09
stopyr3_32 NEWSCHOOL_STOP3.02~Y   bar6 CV_BA_DEGREE   e21400r8_110 YSCH-21400.01.10
scoder3_1 NEWSCHOOL_SCHCODE.01   mar6 CV_MA_DEGREE   e21400r8_111 YSCH-21400.01.11
scoder3_2 NEWSCHOOL_SCHCODE.02   doicmr6 CV_INTERVIEW_CMONTH   e21400r8_112 YSCH-21400.01.12
scoder3_3 NEWSCHOOL_SCHCODE.03   intdr6 CV_INTERVIEW_DATE~D   e21400r8_113 YSCH-21400.01.13
scoder3_4 NEWSCHOOL_SCHCODE.04   intmr6 CV_INTERVIEW_DATE~M   e21400r8_201 YSCH-21400.02.01
scoder3_5 NEWSCHOOL_SCHCODE.05   intyr6 CV_INTERVIEW_DATE~Y   e21400r8_202 YSCH-21400.02.02
scoder3_6  NEWSCHOOL_SCHCODE.06   e27337r6_1  YSCH-27337.01   e21400r8_203 YSCH-21400.02.03
scoder3_7  NEWSCHOOL_SCHCODE.07   e27337r6_2 YSCH-27337.02   e21400r8_204 YSCH-21400.02.04
lftscr3_1 NEWSCHOOL_LEFT.01   e27337r6_3 YSCH-27337.03   e21400r8_205  YSCH-21400.02.05
lftscr3_2 NEWSCHOOL_LEFT.02   e27337r6_4 YSCH-27337.04   e21400r8_206  YSCH-21400.02.06
lftscr3_3 NEWSCHOOL_LEFT.03   e27337r6_5 YSCH-27337.05   e21400r8_207 YSCH-21400.02.07
lftscr3_4 NEWSCHOOL_LEFT.04   e23450r6_1 YSCH-23450.01   e21400r8_208 YSCH-21400.02.08
lftscr3_5 NEWSCHOOL_LEFT.05   e23450r6_2 YSCH-23450.02   e21400r8_301 YSCH-21400.03.01
lftscr3_6 NEWSCHOOL_LEFT.06   e23450r6_3 YSCH-23450.03   e21400r8_302  YSCH-21400.03.02
lftscr3_7 NEWSCHOOL_LEFT.07   e23450r6_5 YSCH-23450.05   e21400r8_303  YSCH-21400.03.03
lftsc2r3_1 NEWSCHOOL_LEFT2.01   lftscr6_1 NEWSCHOOL_LEFT.01   e21400r8_304 YSCH-21400.03.04
lftsc2r2_2 NEWSCHOOL_LEFT2.02   lftscr6_2 NEWSCHOOL_LEFT.02   e21400r8_305  YSCH-21400.03.05
e21300r3_101 YSCH-21300.01.01   lftscr6_3 NEWSCHOOL_LEFT.03   e23450r8_1 YSCH-23450.01
e21300r3_102 YSCH-21300.01.02   lftscr6_4 NEWSCHOOL_LEFT.04   e23450r8_2 YSCH-23450.02
e21300r3_103 YSCH-21300.01.03   scoder6_1 NEWSCHOOL_SCHCODE.01   e23450r8_3 YSCH-23450.03
e21300r3_104  YSCH-21300.01.04   scoder6_2 NEWSCHOOL_SCHCODE.02   e23460mr8_1 YSCH-23460.01~M
e21300r3_105 YSCH-21300.01.05   scoder6_3 NEWSCHOOL_SCHCODE.03   e23460yr8_1 YSCH-23460.01~Y
e21300r3_201 YSCH-21300.02.01   scoder6_4 NEWSCHOOL_SCHCODE.04   e23460mr8_2 YSCH-23460.02~M
e21300r3_202 YSCH-21300.02.02   stopmr6_11 NEWSCHOOL_STOP1.01~M   e23460yr8_2 YSCH-23460.02~Y
e21300r3_203 YSCH-21300.02.03   stopyr6_11 NEWSCHOOL_STOP1.01~Y   e7000r8_1  YSCH-7000.01
e21300r3_204 YSCH-21300.02.04   stopmr6_12 NEWSCHOOL_STOP1.02~M   e7000r8_2 YSCH-7000.02
e21300r3_205 YSCH-21300.02.05   stopyr6_12 NEWSCHOOL_STOP1.02~Y   e7000r8_3 YSCH-7000.03
e21300r3_301 YSCH-21300.03.01   stopmr6_13 NEWSCHOOL_STOP1.03~M   e7000r8_4 YSCH-7000.04
e21300r3_302 YSCH-21300.03.02   stopyr6_13 NEWSCHOOL_STOP1.03~Y   e7050r8_1  YSCH-7050.01
e21300r3_303 `YSCH-21300.03.03   stopmr6_14 NEWSCHOOL_STOP1.04~M   e7050r8_2 YSCH-7050.02
e21300r3_401 YSCH-21300.04.01   stopyr6_14 NEWSCHOOL_STOP1.04~Y   e7050r8_3 YSCH-7050.03
e21400r3_101 YSCH-21400.01.01   stopmr6_21 NEWSCHOOL_STOP2.01~M   e7050r8_4  YSCH-7050.04
e21400r3_102 YSCH-21400.01.02   stopyr6_21 NEWSCHOOL_STOP2.01~Y   e7100mr8_1 YSCH-7100.01~M
e21400r3_103 YSCH-21400.01.03   stopmr6_22 NEWSCHOOL_STOP2.02~M   e7100yr8_1 YSCH-7100.01~Y
e21400r3_104  YSCH-21400.01.04   stopyr6_22 NEWSCHOOL_STOP2.02~Y   e7100mr8_2 YSCH-7100.02~M
e21400r3_105 YSCH-21400.01.05   stopmr6_23 NEWSCHOOL_STOP2.03~M   e7100yr8_2 YSCH-7100.02~Y
e21400r3_201 YSCH-21400.02.01   stopyr6_23 NEWSCHOOL_STOP2.03~Y   e7100mr8_3 YSCH-7100.03~M
e21400r3_202 YSCH-21400.02.02   e21300r6_101 YSCH-21300.01.01   e7100yr8_3 YSCH-7100.03~Y
e21400r3_203 YSCH-21400.02.03   e21300r6_102 YSCH-21300.01.02   e7100mr8_4 YSCH-7100.04~M
e21400r3_204 YSCH-21400.02.04   e21300r6_103 YSCH-21300.01.03   e7100yr8_4 YSCH-7100.04~Y
e21400r3_205  YSCH-21400.02.05   e21300r6_104  YSCH-21300.01.04   t7000r8_1  YTRN-7000.01
e21400r3_301 YSCH-21400.03.01   e21300r6_105 YSCH-21300.01.05   t7000r8_2 YTRN-7000.02
e21400r3_302  YSCH-21400.03.02   e21300r6_106 YSCH-21300.01.06   t7000r8_3 YTRN-7000.03
e21400r3_303 YSCH-21400.03.03   e21300r6_107 YSCH-21300.01.07   t7000r8_4 YTRN-7000.04
e21400r3_401  YSCH-21400.04.01   e21300r6_108 YSCH-21300.01.08   t7000r8_5 YTRN-7000.05
schidr3_1  NEWSCHOOL_PUBID.01   e21300r6_109 YSCH-21300.01.09   t7000r8_6  YTRN-7000.06
schidr3_2 NEWSCHOOL_PUBID.02   e21300r6_110 YSCH-21300.01.10   t7000r8_7 YTRN-7000.07
schidr3_3 NEWSCHOOL_PUBID.03   e21300r6_111 YSCH-21300.01.11   PUBID PUBID
schidr3_4  NEWSCHOOL_PUBID.04   e21300r6_201 YSCH-21300.02.01   lftscr8_1 NEWSCHOOL_LEFT.01
schidr3_5  NEWSCHOOL_PUBID.05   e21300r6_202 YSCH-21300.02.02   lftscr8_2 NEWSCHOOL_LEFT.02
schidr3_6  NEWSCHOOL_PUBID.06   e21300r6_203 YSCH-21300.02.03   lftscr8_3 NEWSCHOOL_LEFT.03
schidr3_7  NEWSCHOOL_PUBID.07   e21300r6_204 YSCH-21300.02.04   lftscr8_4 NEWSCHOOL_LEFT.04
      e21300r6_205 YSCH-21300.02.05   lftscr8_5 NEWSCHOOL_LEFT.05
Round 4     e21300r6_206 YSCH-21300.02.06   scoder8_1 NEWSCHOOL_SCHCODE.01
gdr4 CV_GED   e21300r6_207 YSCH-21300.02.07   scoder8_2 NEWSCHOOL_SCHCODE.02
hsr4 CV_HS_DIPLOMA   e21300r6_208 YSCH-21300.02.08   scoder8_3 NEWSCHOOL_SCHCODE.03
aar4 CV_AA_DEGREE   e21300r6_209 YSCH-21300.02.09   scoder8_4 NEWSCHOOL_SCHCODE.04
bar4 CV_BA_DEGREE   e21300r6_210 YSCH-21300.02.10   scoder8_5 NEWSCHOOL_SCHCODE.05
doicmr4 CV_INTERVIEW_CMONTH   e21300r6_211 YSCH-21300.02.11   strtmr8_11  NEWSCHOOL_START1.01~M
intdr4 CV_INTERVIEW_DATE~D   e21300r6_212 YSCH-21300.02.12   strtyr8_11  NEWSCHOOL_START1.01~Y
intmr4 CV_INTERVIEW_DATE~M   e21300r6_301 YSCH-21300.03.01   strtmr8_12 NEWSCHOOL_START1.02~M
intyr4 CV_INTERVIEW_DATE~Y   e21300r6_302 YSCH-21300.03.02   strtyr8_12 NEWSCHOOL_START1.02~Y
e27337r4_1  YSCH-27337.01   e21300r6_303 YSCH-21300.03.03   strtmr8_13 NEWSCHOOL_START1.03~M
e27337r4_2 YSCH-27337.02   e21300r6_304 YSCH-21300.03.04   strtyr8_13  NEWSCHOOL_START1.03~Y
e27337r4_3 YSCH-27337.03   e21300r6_401 YSCH-21300.04.01   strtmr8_14 NEWSCHOOL_START1.04~M
e27337r4_4 YSCH-27337.04   e21300r6_402 YSCH-21300.04.02   strtyr8_14 NEWSCHOOL_START1.04~Y
e23450r4_1 YSCH-23450.01   e21300r6_403 YSCH-21300.04.03   strtmr8_15 NEWSCHOOL_START1.05~M
e23450r4_2 YSCH-23450.02   e21300r6_501 YSCH-21300.05.01   strtyr8_15  NEWSCHOOL_START1.05~Y
e23450r4_3 YSCH-23450.03   e21400r6_101 YSCH-21400.01.01   stopmr8_11 NEWSCHOOL_STOP1.01~M
lftscr4_1 NEWSCHOOL_LEFT.01   e21400r6_102 YSCH-21400.01.02   stopyr8_11 NEWSCHOOL_STOP1.01~Y
lftscr4_2 NEWSCHOOL_LEFT.02   e21400r6_103 YSCH-21400.01.03   stopmr8_12 NEWSCHOOL_STOP1.02~M
lftscr4_3 NEWSCHOOL_LEFT.03   e21400r6_104  YSCH-21400.01.04   stopyr8_12 NEWSCHOOL_STOP1.02~Y
lftscr4_4 NEWSCHOOL_LEFT.04   e21400r6_105 YSCH-21400.01.05   stopmr8_13 NEWSCHOOL_STOP1.03~M
lftscr4_5 NEWSCHOOL_LEFT.05   e21400r6_106 YSCH-21400.01.06   stopyr8_13 NEWSCHOOL_STOP1.03~Y
stopmr4_11 NEWSCHOOL_STOP1.01~M   e21400r6_107 YSCH-21400.01.07   stopmr8_14 NEWSCHOOL_STOP1.04~M
stopyr4_11 NEWSCHOOL_STOP1.01~Y   e21400r6_108 YSCH-21400.01.08   stopyr8_14 NEWSCHOOL_STOP1.04~Y
stopmr4_12 NEWSCHOOL_STOP1.02~M   e21400r6_109 YSCH-21400.01.09   stopmr8_15 NEWSCHOOL_STOP1.05~M
stopyr4_12 NEWSCHOOL_STOP1.02~Y   e21400r6_110 YSCH-21400.01.10   stopyr8_15 NEWSCHOOL_STOP1.05~Y
stopmr4_13 NEWSCHOOL_STOP1.03~M   e21400r6_111 YSCH-21400.01.11   strtmr8_21  NEWSCHOOL_START2.01~M
stopyr4_13 NEWSCHOOL_STOP1.03~Y   e21400r6_201 YSCH-21400.02.01   strtyr8_21 NEWSCHOOL_START2.01~Y
stopmr4_14 NEWSCHOOL_STOP1.04~M   e21400r6_202 YSCH-21400.02.02   strtmr8_22 NEWSCHOOL_START2.02~M
stopyr4_14 NEWSCHOOL_STOP1.04~Y   e21400r6_203 YSCH-21400.02.03   strtyr8_22 NEWSCHOOL_START2.02~Y
stopmr4_15 NEWSCHOOL_STOP1.05~M   e21400r6_204 YSCH-21400.02.04   strtmr8_23 NEWSCHOOL_START2.03~M
stopyr4_15 NEWSCHOOL_STOP1.05~Y   e21400r6_205  YSCH-21400.02.05   strtyr8_23  NEWSCHOOL_START2.03~Y
stopmr4_21 NEWSCHOOL_STOP2.01~M   e21400r6_206  YSCH-21400.02.06   stopmr8_21 NEWSCHOOL_STOP2.01~M
stopyr4_21 NEWSCHOOL_STOP2.01~Y   e21400r6_207 YSCH-21400.02.07   stopyr8_21 NEWSCHOOL_STOP2.01~Y
stopmr4_22 NEWSCHOOL_STOP2.02~M   e21400r6_208 YSCH-21400.02.08   stopmr8_22 NEWSCHOOL_STOP2.02~M
stopyr4_22 NEWSCHOOL_STOP2.02~Y   e21400r6_209 YSCH-21400.02.09   stopyr8_22 NEWSCHOOL_STOP2.02~Y
stopmr4_23 NEWSCHOOL_STOP2.03~M   e21400r6_210 YSCH-21400.02.10   strtmr8_31  NEWSCHOOL_START3.01~M
stopyr4_23 NEWSCHOOL_STOP2.03~Y   e21400r6_211 YSCH-21400.02.11   strtyr8_31 NEWSCHOOL_START3.01~Y
scoder4_1 NEWSCHOOL_SCHCODE.01   e21400r6_212 YSCH-21400.02.12   strtmr8_32 NEWSCHOOL_START3.02~M
scoder4_2 NEWSCHOOL_SCHCODE.02   e21400r6_301 YSCH-21400.03.01   strtyr8_32  NEWSCHOOL_START3.02~Y
scoder4_3 NEWSCHOOL_SCHCODE.03   e21400r6_302  YSCH-21400.03.02   stopmr8_31  NEWSCHOOL_STOP3.01~M
scoder4_4 NEWSCHOOL_SCHCODE.04   e21400r6_303  YSCH-21400.03.03   stopyr8_31 NEWSCHOOL_STOP3.01~Y
scoder4_5 NEWSCHOOL_SCHCODE.05   e21400r6_401 YSCH-21400.04.01   stopmr8_32 NEWSCHOOL_STOP3.02~M
lftsc2r4_1 NEWSCHOOL_LEFT2.01   e21400r6_402 YSCH-21400.04.02   stopyr8_32  NEWSCHOOL_STOP3.02~Y
lftsc2r4_2 NEWSCHOOL_LEFT2.02   e21400r6_403 YSCH-21400.04.03   schidr8_1  NEWSCHOOL_PUBID.01
e21300r4_101 YSCH-21300.01.01   schidr6_1  NEWSCHOOL_PUBID.01   schidr8_2  NEWSCHOOL_PUBID.02
e21300r4_102 YSCH-21300.01.02   schidr6_2 NEWSCHOOL_PUBID.02   schidr8_3  NEWSCHOOL_PUBID.03
e21300r4_103 YSCH-21300.01.03   schidr6_3 NEWSCHOOL_PUBID.03   schidr8_4  NEWSCHOOL_PUBID.04
e21300r4_104  YSCH-21300.01.04   schidr6_4  NEWSCHOOL_PUBID.04   schidr8_5  NEWSCHOOL_PUBID.05

This program creates the variables that indicate the dates on which the youth received GED, High School Diploma, Associate Degree, Bachelor's Degree, Master's Degree, Doctoral Degree and Professional Degree from NLSY97 round 8 (2004). The dates will be calculated as the number of accumulated months from 1980. Also, the program will check if there is some conflict in these answers between round 8 and earlier rounds.

Descriptions of the variables created are the following:

CDTGD Date that the respondent received GED.
CDTHS Date that the respondent received the high school diploma
CDTAA Date that the respondent received associate degree.
CDTBA Date that the respondent received Bachelor's degree.
CDTMA Date that the respondent received Master's degree.
CDTDC Date that the respondent received doctoral degree.
CDTPF Date that the respondent received professional degree.

Note: If there are two or more valid but different dates for a degree receipt then we take the date reported in the earlier round as that would have been closer to the actual date.
Note: If R attends college without a High School diploma or GED then R is asked for an explanation in question, YSCH-13900. If R reports receiving a HS diploma or GED but gives no date of receipt then give corresponding date of degree received as -3.


***** Create dataset for those not interviewed in current round.;
data nonint; set merged;
if e11700r8=-5;
CDTGD=-5; CDTHS=-5; CDTAA=-5; CDTBA=-5; CDTMA=-5; CDTDC=-5; CDTPF=-5; hgdegr8=-5;
data nonint; set nonint; proc sort; by pubid;

***** Create dataset for those interviewed in current round.;
data int; set merged;
if e11700r8~=-5;


*** Define all arrays to be used in this program:;

array CR1 (7) gdr1 hsr1 aar1 bar1 mar1 dcr1 pfr1;
array CR2 (7) gdr2 hsr2 aar2 bar2 mar2 dcr2 pfr2;
array CR3 (7) gdr3 hsr3 aar3 bar3 mar3 dcr3 pfr3;
array CR4 (7) gdr4 hsr4 aar4 bar4 mar4 dcr4 pfr4;
array CR5 (7) gdr5 hsr5 aar5 bar5 mar5 dcr5 pfr5;
array CR6 (7) gdr6 hsr6 aar6 bar6 mar6 dcr6 pfr6;
array CR7 (7) gdr7 hsr7 aar7 bar7 mar7 dcr7 pfr7;
array CRP (7) gdrP hsrP aarP barP marP dcrP pfrP;

array CRC (7) gdrC hsrC aarC barC marC dcrC pfrC;

array CDT (7) CDTGD CDTHS CDTAA CDTBA CDTMA CDTDC CDTPF;
array YDT (7) ydtGD ydtHS ydtAA ydtBA ydtMA ydtDC ydtPF;

array HED (7) hedGD hedHS hedAA hedBA hedMA hedDC hedPF;
array FLG (7) flgGD flgHS flgAA flgBA flgMA flgDC flgPF;
array QUX (7) quxGD quxHS quxAA quxBA quxMA quxDC quxPF;
array DEG (7) degGD degHS degAA degBA degMA degDC degPF;

array TMPDG (5) TMPDG1-TMPDG5;

array e27388r8 (5) e27388r8_1-e27388r8_5;
array e23400r8 (5) e23400r8_1-e23400r8_5;
array e23460mr8 (5) e23460mr8_1-e23460mr8_5;
array e23460yr8 (5) e23460yr8_1-e23460yr8_5;

array t7000r8 (7) t7000r8_1-t7000r8_7;

array scoder1 (2) scoder1_1-scoder1_2;
array scoder2 (6) scoder2_1-scoder2_6;
array scoder3 (7) scoder3_1-scoder3_7;
array scoder4 (5) scoder4_1-scoder4_5;
array scoder5 (6) scoder5_1-scoder5_6;
array scoder6 (5) scoder6_1-scoder6_5;
array scoder7 (5) scoder7_1-scoder7_5;
array scoder8 (5) scoder8_1-scoder8_5;

array lftscr1 (2) lftscr1_1-lftscr1_2;
array lftscr2 (6) lftscr2_1-lftscr2_6;
array lftscr3 (7) lftscr3_1-lftscr3_7;
array lftscr4 (5) lftscr4_1-lftscr4_5;
array lftscr5 (6) lftscr5_1-lftscr5_6;
array lftscr6 (5) lftscr6_1-lftscr6_5;
array lftscr7 (5) lftscr7_1-lftscr7_5;
array lftscr8 (5) lftscr8_1-lftscr8_5;

array lftsc2r2 (6) lftsc2r2_1-lftsc2r2_6;
array lftsc2r3 (7) lftsc2r3_1-lftsc2r3_7;
array lftsc2r4 (5) lftsc2r4_1-lftsc2r4_5;
array lftsc2r5 (6) lftsc2r5_1-lftsc2r5_6;
array lftsc2r6 (5) lftsc2r6_1-lftsc2r6_5;
array lftsc2r7 (5) lftsc2r7_1-lftsc2r7_5;
array lftsc2r8 (5) lftsc2r8_1-lftsc2r8_5;

array e27337r2 (6) e27337r2_1-e27337r2_6;
array e27337r3 (7) e27337r3_1-e27337r3_7;
array e27337r4 (5) e27337r4_1-e27337r4_5;
array e27337r5 (6) e27337r5_1-e27337r5_6;
array e27337r6 (5) e27337r6_1-e27337r6_5;
array e27337r7 (5) e27337r7_1-e27337r7_5;
array e27337r8 (5) e27337r8_1-e27337r8_5;

array e23450r2 (6) e23450r2_1-e23450r2_6;
array e23450r3 (7) e23450r3_1-e23450r3_7;
array e23450r4 (5) e23450r4_1-e23450r4_5;
array e23450r5 (6) e23450r5_1-e23450r5_6;
array e23450r6 (5) e23450r6_1-e23450r6_5;
array e23450r7 (5) e23450r7_1-e23450r7_5;
array e23450r8 (5) e23450r8_1-e23450r8_5;

array schidr1 (2) schidr1_1-schidr1_2;
array schidr2 (6) schidr2_1-schidr2_6;
array schidr3 (7) schidr3_1-schidr3_7;
array schidr4 (5) schidr4_1-schidr4_5;
array schidr5 (6) schidr5_1-schidr5_6;
array schidr6 (5) schidr6_1-schidr6_5;
array schidr7 (5) schidr7_1-schidr7_5;
array schidr8 (5) schidr8_1-schidr8_5;

array major1 (*) e21300r1_101 e21400r1_101;

array major21 (*) e21300r2_101-e21300r2_105 e21400r2_101-e21400r2_105;
array major22 (*) e21300r2_201-e21300r2_205 e21400r2_201-e21400r2_205;
array major23 (*) e21300r2_301-e21300r2_305 e21400r2_301-e21400r2_305;
array major24 (*) e21300r2_401 e21400r2_401;
array major25 (*) e21300r2_501 e21400r2_501;

array major31 (*) e21300r3_101-e21300r3_105 e21400r3_101-e21400r3_105;
array major32 (*) e21300r3_201-e21300r3_205 e21400r3_201-e21400r3_205;
array major33 (*) e21300r3_301-e21300r3_303 e21400r3_301-e21400r3_303;
array major34 (*) e21300r3_401 e21400r3_401;

array major41 (*) e21300r4_101-e21300r4_108 e21400r4_101-e21400r4_108;
array major42 (*) e21300r4_201-e21300r4_206 e21400r4_201-e21400r4_206;
array major43 (*) e21300r4_301-e21300r4_302 e21400r4_301-e21400r4_302;
array major44 (*) e21300r4_401-e21300r4_402 e21400r4_401-e21400r4_402;

array major51 (*) e21300r5_101-e21300r5_107 e21400r5_101-e21400r5_107;
array major52 (*) e21300r5_201-e21300r5_207 e21400r5_201-e21400r5_207;
array major53 (*) e21300r5_301-e21300r5_304 e21400r5_301-e21400r5_304;
array major54 (*) e21300r5_401 e21400r5_401;
array major55 (*) e21300r5_501-e21300r5_502 e21400r5_501-e21400r5_502;
array major56 (*) e21300r5_601 e21400r5_601;

array major61 (*) e21300r6_101-e21300r6_111 e21400r6_101-e21400r6_111;
array major62 (*) e21300r6_201-e21300r6_212 e21400r6_201-e21400r6_212;
array major63 (*) e21300r6_301-e21300r6_304 e21400r6_301-e21400r6_304;
array major64 (*) e21300r6_401-e21300r6_403 e21400r6_401-e21400r6_403;
array major65 (*) e21300r6_501 e21400r6_501;

array major71 (*) e21300r7_101-e21300r7_109 e21400r7_101-e21400r7_109;
array major72 (*) e21300r7_201-e21300r7_209 e21400r7_201-e21400r7_209;
array major73 (*) e21300r7_301-e21300r7_303 e21400r7_301-e21400r7_303;
array major74 (*) e21300r7_401 e21400r7_401;
array major75 (*) e21300r7_501 e21400r7_501;

array major81 (*) e21300r8_101-e21300r8_113 e21400r8_101-e21400r8_113;
array major82 (*) e21300r8_201-e21300r8_208 e21400r8_201-e21400r8_208;
array major83 (*) e21300r8_301-e21300r8_305 e21400r8_301-e21400r8_305;
array major84 (*) e21300r8_401 e21400r8_401;

array stopmr2 (6,3) stopmr2_11 stopmr2_21 stopmr2_31
stopmr2_12 stopmr2_22 stopmr2_32
stopmr2_13 stopmr2_23 stopmr2_33
stopmr2_14 stopmr2_24 stopmr2_34
stopmr2_15 stopmr2_25 stopmr2_35
stopmr2_16 stopmr2_26 stopmr2_36;

array stopyr2 (6,3) stopyr2_11 stopyr2_21 stopyr2_31
stopyr2_12 stopyr2_22 stopyr2_32
stopyr2_13 stopyr2_23 stopyr2_33
stopyr2_14 stopyr2_24 stopyr2_34
stopyr2_15 stopyr2_25 stopyr2_35
stopyr2_16 stopyr2_26 stopyr2_36;

array stopmr3 (7,3) stopmr3_11 stopmr3_21 stopmr3_31
stopmr3_12 stopmr3_22 stopmr3_32
stopmr3_13 stopmr3_23 stopmr3_33
stopmr3_14 stopmr3_24 stopmr3_34
stopmr3_15 stopmr3_25 stopmr3_35
stopmr3_16 stopmr3_26 stopmr3_36
stopmr3_17 stopmr3_27 stopmr3_37;

array stopyr3 (7,3) stopyr3_11 stopyr3_21 stopyr3_31
stopyr3_12 stopyr3_22 stopyr3_32
stopyr3_13 stopyr3_23 stopyr3_33
stopyr3_14 stopyr3_24 stopyr3_34
stopyr3_15 stopyr3_25 stopyr3_35
stopyr3_16 stopyr3_26 stopyr3_36
stopyr3_17 stopyr3_27 stopyr3_37;

array stopmr4 (5,2) stopmr4_11 stopmr4_21
stopmr4_12 stopmr4_22
stopmr4_13 stopmr4_23
stopmr4_14 stopmr4_24
stopmr4_15 stopmr4_25;

array stopyr4 (5,2) stopyr4_11 stopyr4_21
stopyr4_12 stopyr4_22
stopyr4_13 stopyr4_23
stopyr4_14 stopyr4_24
stopyr4_15 stopyr4_25;

array stopmr5 (6,3) stopmr5_11 stopmr5_21 stopmr5_31
stopmr5_12 stopmr5_22 stopmr5_32
stopmr5_13 stopmr5_23 stopmr5_33
stopmr5_14 stopmr5_24 stopmr5_34
stopmr5_15 stopmr5_25 stopmr5_35
stopmr5_16 stopmr5_26 stopmr5_36;

array stopyr5 (6,3) stopyr5_11 stopyr5_21 stopyr5_31
stopyr5_12 stopyr5_22 stopyr5_32
stopyr5_13 stopyr5_23 stopyr5_33
stopyr5_14 stopyr5_24 stopyr5_34
stopyr5_15 stopyr5_25 stopyr5_35
stopyr5_16 stopyr5_26 stopyr5_36;

array stopmr6 (5,2) stopmr6_11 stopmr6_21
stopmr6_12 stopmr6_22
stopmr6_13 stopmr6_23
stopmr6_14 stopmr6_24
stopmr6_15 stopmr6_25;

array stopyr6 (5,2) stopyr6_11 stopyr6_21
stopyr6_12 stopyr6_22
stopyr6_13 stopyr6_23
stopyr6_14 stopyr6_24
stopyr6_15 stopyr6_25;

array stopmr7 (5,3) stopmr7_11 stopmr7_21 stopmr7_31
stopmr7_12 stopmr7_22 stopmr7_32
stopmr7_13 stopmr7_23 stopmr7_33
stopmr7_14 stopmr7_24 stopmr7_34
stopmr7_15 stopmr7_25 stopmr7_35;

array stopyr7 (5,3) stopyr7_11 stopyr7_21 stopyr7_31
stopyr7_12 stopyr7_22 stopyr7_32
stopyr7_13 stopyr7_23 stopyr7_33
stopyr7_14 stopyr7_24 stopyr7_34
stopyr7_15 stopyr7_25 stopyr7_35;

array stopmr8 (5,3) stopmr8_11 stopmr8_21 stopmr8_31
stopmr8_12 stopmr8_22 stopmr8_32
stopmr8_13 stopmr8_23 stopmr8_33
stopmr8_14 stopmr8_24 stopmr8_34
stopmr8_15 stopmr8_25 stopmr8_35;

array stopyr8 (5,3) stopyr8_11 stopyr8_21 stopyr8_31
stopyr8_12 stopyr8_22 stopyr8_32
stopyr8_13 stopyr8_23 stopyr8_33
stopyr8_14 stopyr8_24 stopyr8_34
stopyr8_15 stopyr8_25 stopyr8_35;

array stopcr2 (6) stopcr2_1-stopcr2_6;
array stopcr3 (7) stopcr3_1-stopcr3_7;
array stopcr4 (5) stopcr4_1-stopcr4_5;
array stopcr5 (6) stopcr5_1-stopcr5_6;
array stopcr6 (5) stopcr6_1-stopcr6_5;
array stopcr7 (5) stopcr7_1-stopcr7_5;
array stopcr8 (5) stopcr8_1-stopcr8_5;

array anymjr1 (2) anymjr1_1-anymjr1_2;
array anymjr2 (6) anymjr2_1-anymjr2_6;
array anymjr3 (7) anymjr3_1-anymjr3_7;
array anymjr4 (5) anymjr4_1-anymjr4_5;
array anymjr5 (6) anymjr5_1-anymjr5_6;
array anymjr6 (5) anymjr6_1-anymjr6_5;
array anymjr7 (5) anymjr7_1-anymjr7_5;
array anymjr8 (5) anymjr8_1-anymjr8_5;

array clgdgr2 (6) clgdgr2_1-clgdgr2_6;
array clgdgr3 (7) clgdgr3_1-clgdgr3_7;
array clgdgr4 (5) clgdgr4_1-clgdgr4_5;
array clgdgr5 (6) clgdgr5_1-clgdgr5_6;
array clgdgr6 (5) clgdgr6_1-clgdgr6_5;
array clgdgr7 (5) clgdgr7_1-clgdgr7_5;
array clgdgr8 (5) clgdgr8_1-clgdgr8_5;

*** Initialize Variables.;

if pubid=7599 then do;
stopmr8_11=11;
handedit=1;
end;


** Create enrollment stop dates in continuous month schemes for all rounds;

do i=1 to dim(stopmr8,1);
do j=1 to dim(stopmr8,2);
if stopmr8(i,j)>0 & stopyr8(i,j)>0 then stopcr8(i)=((stopyr8(i,j)-1980)*12)+stopmr8(i,j);
if stopmr8(i,j)=-3|stopyr8(i,j)=-3 then stopcr8(i)=-3;
end;
end;

do i=1 to dim(stopmr7,1);
do j=1 to dim(stopmr7,2);
if stopmr7(i,j)>0 & stopyr7(i,j)>0 then stopcr7(i)=((stopyr7(i,j)-1980)*12)+stopmr7(i,j);
if stopmr7(i,j)=-3|stopyr7(i,j)=-3 then stopcr7(i)=-3;
end;
end;

do i=1 to dim(stopmr6,1);
do j=1 to dim(stopmr6,2);
if stopmr6(i,j)>0 & stopyr6(i,j)>0 then stopcr6(i)=((stopyr6(i,j)-1980)*12)+stopmr6(i,j);
if stopmr6(i,j)=-3|stopyr6(i,j)=-3 then stopcr6(i)=-3;
end;
end;

do i=1 to dim(stopmr5,1);
do j=1 to dim(stopmr5,2);
if stopmr5(i,j)>0 & stopyr5(i,j)>0 then stopcr5(i)=((stopyr5(i,j)-1980)*12)+stopmr5(i,j);
if stopmr5(i,j)=-3|stopyr5(i,j)=-3 then stopcr5(i)=-3;
end;
end;

do i=1 to dim(stopmr4,1);
do j=1 to dim(stopmr4,2);
if stopmr4(i,j)>0 & stopyr4(i,j)>0 then stopcr4(i)=((stopyr4(i,j)-1980)*12)+stopmr4(i,j);
if stopmr4(i,j)=-3|stopyr4(i,j)=-3 then stopcr4(i)=-3;
end;
end;

do i=1 to dim(stopmr3,1);
do j=1 to dim(stopmr3,2);
if stopmr3(i,j)>0 & stopyr3(i,j)>0 then stopcr3(i)=((stopyr3(i,j)-1980)*12)+stopmr3(i,j);
if stopmr3(i,j)=-3|stopyr3(i,j)=-3 then stopcr3(i)=-3;
end;
end;

do i=1 to dim(stopmr2,1);
do j=1 to dim(stopmr2,2);
if stopmr2(i,j)>0 & stopyr2(i,j)>0 then stopcr2(i)=((stopyr2(i,j)-1980)*12)+stopmr2(i,j);
if stopmr2(i,j)=-3|stopyr2(i,j)=-3 then stopcr2(i)=-3;
end;
end;

** Set initial values of date of degree received variables to -4. Set all dummies to 0.;
FLG_13900r8=0; FLG_COMMr8=0;
deg_unknown=0;
ged_trn=0;
do i=1 to 7;
CRC(i)=-4; CDT(i)=-4;
DEG(i)=0; FLG(i)=0; QUX(i)=0; HED(i)=0;
end;


** Set all variables that were not created in earlier rounds (rather were created but were missing for
all Rs so were not included in the dataset) as -4 and if R was not interviewed as -5.;

aar1=-4; bar1=-4; mar1=-4; dcr1=-4; pfr1=-4;
aar2=-4; bar2=-4; mar2=-4; dcr2=-4; pfr2=-4;
mar3=-4; dcr3=-4; pfr3=-4;
mar4=-4; dcr4=-4; pfr4=-4;
mar5=-4; dcr5=-4; pfr5=-4;
dcr6=-4; pfr6=-4;
dcr7=-4; pfr7=-4;

if gdr1=-5 then do; aar1=-5; bar1=-5; mar1=-5; dcr1=-5; pfr1=-5; end;
if gdr2=-5 then do; aar2=-5; bar2=-5; mar2=-5; dcr2=-5; pfr2=-5; end;
if gdr3=-5 then do; mar3=-5; dcr3=-5; pfr3=-5; end;
if gdr4=-5 then do; mar4=-5; dcr4=-5; pfr4=-5; end;
if gdr5=-5 then do; mar5=-5; dcr5=-5; pfr5=-5; end;
if gdr6=-5 then do; dcr6=-5; pfr6=-5; end;
if gdr7=-5 then do; dcr7=-5; pfr7=-5; end;

*** Identify the latest date of degree received variables from previous rounds.;
do i=1 to 7;
if CR7(i)~=-5 then CRP(i)=CR7(i);
if CR7(i)=-5 then do;
if CR6(i)~=-5 then CRP(i)=CR6(i);
if CR6(i)=-5 then do;
if CR5(i)~=-5 then CRP(i)=CR5(i);
if CR5(i)=-5 then do;
if CR4(i)~=-5 then CRP(i)=CR4(i);
if CR4(i)=-5 then do;
if CR3(i)~=-5 then CRP(i)=CR3(i);
if CR3(i)=-5 then do;
if CR2(i)~=-5 then CRP(i)=CR2(i);
if CR2(i)=-5 then do;
CRP(i)=CR1(i);
end;
end;
end;
end;
end;
end;
end;


*** Create the date of degree received variables using information from current round only
Note: The earlier code would not let a bad date be overwritten with a good one. So, we changed it.
The old code is at the end of the program.;

** Compute the date of receiving GED.;
if e13300r8=-3 then gdrC=-3;
if e13300r8=1 and gdrC<0 then do;
gdrC=-3;
if e13500mr8>0 and e13500yr8>0 then gdrC=(e13500yr8-1980)*12+e13500mr8;
if e13500mr8 in (-4,0) or e13500yr8 in (-4,0) then quxGD=1;
end;

** Compute the date of receiving HS Diploma.;
if e11700r8=-3 then hsrC=-3;
if e11700r8=1 and hsrC<0 then do;
hsrC=-3;
if e11900mr8>0 and e11900yr8>0 then hsrC=(e11900yr8-1980)*12+e11900mr8;
if e11900mr8 in (-4,0) or e11900yr8 in (-4,0) then quxHS=1;
end;

** Compute the dates of receiving GED, AA, BA/BS, MA/MS/MBA/MSW, Ph.D. and MS/LLD/DDS/JD.;
do j=1 to dim(TMPDG);
if e23450r8(j)=1 then TMPDG(j)=3; /* Associate/Junior College or two-year associate degree (AA) */
if e23450r8(j)=3 then TMPDG(j)=4; /* Bachelor's degree (BA, BS or unspecified) */
if e23450r8(j)=4 then TMPDG(j)=5; /* Master's degree (MA, MBA, MS, MSW) */
if e23450r8(j)=5 then TMPDG(j)=6; /* Doctoral Degree (Ph.D.) */
if e23450r8(j)=6 then TMPDG(j)=7; /* Professional Degree (MD, LLD, DDS, JD) */
if e23450r8(j)=9 then TMPDG(j)=2; /* GED */
end;
do j=1 to dim(TMPDG);
do i=2 to 7;
if TMPDG(j)=i and CRC(i)<0 then do;
CRC(i)=-3;
if e23460mr8(j)>0 & e23460yr8(j)>0 then CRC(i)=(e23460yr8(j)-1980)*12+e23460mr8(j);
if e23460mr8(j) in (-4,0) | e23460yr8(j) in (-4,0) then QUX(i)=1;
end;
end;
if e23450r8(j) in (8,999,-1,-2,-3) then deg_unknown=1;
end;

** Compute the date of receiving GED if respondent completes GED in a training program. Set the date
to -3 because we don't know completion date. Do not, however, overwrite a good date.;
do k=1 to dim(t7000r8);
if GDRC=-4 and t7000r8(k)=4 then do;
GDRC=-3;
ged_trn=1;
end;
end;

do i=1 to dim(scoder8);
if e23450r8(i)<=0 & lftscr8(i)=1 & scoder8(i) in (4,5) & e27337r8(i) in (1,3,4,5,6,10) then do;
if e3113r8=4 & aarC=-4 then chkdg1=1;
if e3113r8=5 & barC=-4 then chkdg1=2;
if e3113r8=6 & marC=-4 then chkdg1=3;
if e3113r8=7 & dcrC=-4 then chkdg1=4;
if e3113r8=8 & pfrC=-4 then chkdg1=5;
end;
end;

** Compute dummy for whether had decided on a major at the college. Sometimes when R reports being
enrolled in a college and that is a continuing college from DLI information for the major and other
college specific information is not collected (either because of quex problems or because R did not
complete the current term). In such cases we match the that college to a college reported in DLI
and use the major reported for that college.;

** Round 1;
do i=1 to dim(major1);
if major1(i) in (0,98) & anymjr1_1~=1 then anymjr1_1=0;
if major1(i)>0 & anymjr1_1~=98 then anymjr1_1=1;
end;

** Round 2;
do i=1 to dim(major21); if major21(i) in (0,98) & anymjr2_1~=1 then anymjr2_1=0; if major21(i)>0 & anymjr2_1~=98 then anymjr2_1=1; end;
do i=1 to dim(major22); if major22(i) in (0,98) & anymjr2_2~=1 then anymjr2_2=0; if major22(i)>0 & anymjr2_2~=98 then anymjr2_2=1; end;
do i=1 to dim(major23); if major23(i) in (0,98) & anymjr2_3~=1 then anymjr2_3=0; if major23(i)>0 & anymjr2_3~=98 then anymjr2_3=1; end;
do i=1 to dim(major24); if major24(i) in (0,98) & anymjr2_4~=1 then anymjr2_4=0; if major24(i)>0 & anymjr2_4~=98 then anymjr2_4=1; end;
do i=1 to dim(major25); if major25(i) in (0,98) & anymjr2_5~=1 then anymjr2_5=0; if major25(i)>0 & anymjr2_5~=98 then anymjr2_5=1; end;

if anymjr2_1=. & gdr2~=-5 then do;
do k=1 to dim(schidr1);
if schidr2_1=schidr1(k) & schidr1(k)>0 & anymjr1(k)>=0 then do;
anymjr2_1=anymjr1(k);
major_FLG_r2=1;
end;
end;
end;

** Round 3;
do i=1 to dim(major31); if major31(i) in (0,98) & anymjr3_1~=1 then anymjr3_1=0; if major31(i)>0 & anymjr3_1~=98 then anymjr3_1=1; end;
do i=1 to dim(major32); if major32(i) in (0,98) & anymjr3_2~=1 then anymjr3_2=0; if major32(i)>0 & anymjr3_2~=98 then anymjr3_2=1; end;
do i=1 to dim(major33); if major33(i) in (0,98) & anymjr3_3~=1 then anymjr3_3=0; if major33(i)>0 & anymjr3_3~=98 then anymjr3_3=1; end;
do i=1 to dim(major34); if major34(i) in (0,98) & anymjr3_4~=1 then anymjr3_4=0; if major34(i)>0 & anymjr3_4~=98 then anymjr3_4=1; end;

if anymjr3_1=. & gdr3~=-5 then do;
if gdr2~=-5 then do;
do k=1 to dim(schidr2);
if schidr3_1=schidr2(k) & schidr2(k)>0 & anymjr2(k)>=0 then do;
anymjr3_1=anymjr2(k);
major_FLG_r3=2;
end;
end;
end;
if gdr2=-5 then do;
do k=1 to dim(schidr1);
if schidr3_1=schidr1(k) & schidr1(k)>0 & anymjr1(k)>=0 then do;
anymjr3_1=anymjr1(k);
major_FLG_r3=1;
end;
end;
end;
end;

** Round 4;
do i=1 to dim(major41); if major41(i) in (0,98) & anymjr4_1~=1 then anymjr4_1=0; if major41(i)>0 & anymjr4_1~=98 then anymjr4_1=1; end;
do i=1 to dim(major42); if major42(i) in (0,98) & anymjr4_2~=1 then anymjr4_2=0; if major42(i)>0 & anymjr4_2~=98 then anymjr4_2=1; end;
do i=1 to dim(major43); if major43(i) in (0,98) & anymjr4_3~=1 then anymjr4_3=0; if major43(i)>0 & anymjr4_3~=98 then anymjr4_3=1; end;
do i=1 to dim(major44); if major44(i) in (0,98) & anymjr4_4~=1 then anymjr4_4=0; if major44(i)>0 & anymjr4_4~=98 then anymjr4_4=1; end;

if anymjr4_1=. & gdr4~=-5 then do;
if gdr3~=-5 then do;
do k=1 to dim(schidr3);
if schidr4_1=schidr3(k) & schidr3(k)>0 & anymjr3(k)>=0 then do;
anymjr4_1=anymjr3(k);
major_FLG_r4=3;
end;
end;
end;
if gdr3=-5 & gdr2~=-5 then do;
do k=1 to dim(schidr2);
if schidr4_1=schidr2(k) & schidr2(k)>0 & anymjr2(k)>=0 then do;
anymjr4_1=anymjr2(k);
major_FLG_r4=2;
end;
end;
end;
if gdr3=-5 & gdr2=-5 then do;
do k=1 to dim(schidr1);
if schidr4_1=schidr1(k) & schidr1(k)>0 & anymjr1(k)>=0 then do;
anymjr4_1=anymjr1(k);
major_FLG_r4=1;
end;
end;
end;
end;

** Round 5;
do i=1 to dim(major51); if major51(i) in (0,98) & anymjr5_1~=1 then anymjr5_1=0; if major51(i)>0 & anymjr5_1~=98 then anymjr5_1=1; end;
do i=1 to dim(major52); if major52(i) in (0,98) & anymjr5_2~=1 then anymjr5_2=0; if major52(i)>0 & anymjr5_2~=98 then anymjr5_2=1; end;
do i=1 to dim(major53); if major53(i) in (0,98) & anymjr5_3~=1 then anymjr5_3=0; if major53(i)>0 & anymjr5_3~=98 then anymjr5_3=1; end;
do i=1 to dim(major54); if major54(i) in (0,98) & anymjr5_4~=1 then anymjr5_4=0; if major54(i)>0 & anymjr5_4~=98 then anymjr5_4=1; end;
do i=1 to dim(major55); if major55(i) in (0,98) & anymjr5_5~=1 then anymjr5_5=0; if major55(i)>0 & anymjr5_5~=98 then anymjr5_5=1; end;
do i=1 to dim(major56); if major56(i) in (0,98) & anymjr5_6~=1 then anymjr5_6=0; if major56(i)>0 & anymjr5_6~=98 then anymjr5_6=1; end;

if anymjr5_1=. & gdr5~=-5 then do;
if gdr4~=-5 then do;
do k=1 to dim(schidr4);
if schidr5_1=schidr4(k) & schidr4(k)>0 & anymjr4(k)>=0 then do;
anymjr5_1=anymjr4(k);
major_FLG_r5=4;
end;
end;
end;
if gdr4=-5 & gdr3~=-5 then do;
do k=1 to dim(schidr3);
if schidr5_1=schidr3(k) & schidr3(k)>0 & anymjr3(k)>=0 then do;
anymjr5_1=anymjr3(k);
major_FLG_r5=3;
end;
end;
end;
if gdr4=-5 & gdr3=-5 & gdr2~=-5 then do;
do k=1 to dim(schidr2);
if schidr5_1=schidr2(k) & schidr2(k)>0 & anymjr2(k)>=0 then do;
anymjr5_1=anymjr2(k);
major_FLG_r5=2;
end;
end;
end;
if gdr4=-5 & gdr3=-5 & gdr2=-5 then do;
do k=1 to dim(schidr1);
if schidr5_1=schidr1(k) & schidr1(k)>0 & anymjr1(k)>=0 then do;
anymjr5_1=anymjr1(k);
major_FLG_r5=1;
end;
end;
end;
end;

** Round 6;
do i=1 to dim(major61); if major61(i) in (0,98) & anymjr6_1~=1 then anymjr6_1=0; if major61(i)>0 & anymjr6_1~=98 then anymjr6_1=1; end;
do i=1 to dim(major62); if major62(i) in (0,98) & anymjr6_2~=1 then anymjr6_2=0; if major62(i)>0 & anymjr6_2~=98 then anymjr6_2=1; end;
do i=1 to dim(major63); if major63(i) in (0,98) & anymjr6_3~=1 then anymjr6_3=0; if major63(i)>0 & anymjr6_3~=98 then anymjr6_3=1; end;
do i=1 to dim(major64); if major64(i) in (0,98) & anymjr6_4~=1 then anymjr6_4=0; if major64(i)>0 & anymjr6_4~=98 then anymjr6_4=1; end;
do i=1 to dim(major65); if major65(i) in (0,98) & anymjr6_5~=1 then anymjr6_5=0; if major65(i)>0 & anymjr6_5~=98 then anymjr6_5=1; end;

if anymjr6_1=. & gdr6~=-5 then do;
if gdr5~=-5 then do;
do k=1 to dim(schidr5);
if schidr6_1=schidr5(k) & schidr5(k)>0 & anymjr5(k)>=0 then do;
anymjr6_1=anymjr5(k);
major_FLG_r6=5;
end;
end;
end;
if gdr5=-5 & gdr4~=-5 then do;
do k=1 to dim(schidr4);
if schidr6_1=schidr4(k) & schidr4(k)>0 & anymjr4(k)>=0 then do;
anymjr6_1=anymjr4(k);
major_FLG_r6=4;
end;
end;
end;
if gdr5=-5 & gdr4=-5 & gdr3~=-5 then do;
do k=1 to dim(schidr3);
if schidr6_1=schidr3(k) & schidr3(k)>0 & anymjr3(k)>=0 then do;
anymjr6_1=anymjr3(k);
major_FLG_r6=3;
end;
end;
end;
if gdr5=-5 & gdr4=-5 & gdr3=-5 & gdr2~=-5 then do;
do k=1 to dim(schidr2);
if schidr6_1=schidr2(k) & schidr2(k)>0 & anymjr2(k)>=0 then do;
anymjr6_1=anymjr2(k);
major_FLG_r6=2;
end;
end;
end;
if gdr5=-5 & gdr4=-5 & gdr3=-5 & gdr2=-5 then do;
do k=1 to dim(schidr1);
if schidr6_1=schidr1(k) & schidr1(k)>0 & anymjr1(k)>=0 then do;
anymjr6_1=anymjr1(k);
major_FLG_r6=1;
end;
end;
end;
end;

** Round 7;
do i=1 to dim(major71); if major71(i) in (0,98) & anymjr7_1~=1 then anymjr7_1=0; if major71(i)>0 & anymjr7_1~=98 then anymjr7_1=1; end;
do i=1 to dim(major72); if major72(i) in (0,98) & anymjr7_2~=1 then anymjr7_2=0; if major72(i)>0 & anymjr7_2~=98 then anymjr7_2=1; end;
do i=1 to dim(major73); if major73(i) in (0,98) & anymjr7_3~=1 then anymjr7_3=0; if major73(i)>0 & anymjr7_3~=98 then anymjr7_3=1; end;
do i=1 to dim(major74); if major74(i) in (0,98) & anymjr7_4~=1 then anymjr7_4=0; if major74(i)>0 & anymjr7_4~=98 then anymjr7_4=1; end;
do i=1 to dim(major75); if major75(i) in (0,98) & anymjr7_5~=1 then anymjr7_5=0; if major75(i)>0 & anymjr7_5~=98 then anymjr7_5=1; end;

if anymjr7_1=. & gdr6~=-5 then do;
do k=1 to dim(schidr6);
if schidr7_1=schidr6(k) & schidr6(k)>0 & anymjr6(k)>=0 then do;
anymjr7_1=anymjr6(k);
major_FLG_r7=6;
end;
end;
if gdr6=-5 & gdr5~=-5 then do;
do k=1 to dim(schidr5);
if schidr7_1=schidr5(k) & schidr5(k)>0 & anymjr5(k)>=0 then do;
anymjr7_1=anymjr5(k);
major_FLG_r7=5;
end;
end;
end;
if gdr6=-5 & gdr5=-5 & gdr4~=-5 then do;
do k=1 to dim(schidr4);
if schidr7_1=schidr4(k) & schidr4(k)>0 & anymjr4(k)>=0 then do;
anymjr7_1=anymjr4(k);
major_FLG_r7=4;
end;
end;
end;
if gdr6=-5 & gdr5=-5 & gdr4=-5 & gdr3~=-5 then do;
do k=1 to dim(schidr3);
if schidr7_1=schidr3(k) & schidr3(k)>0 & anymjr3(k)>=0 then do;
anymjr7_1=anymjr3(k);
major_FLG_r7=3;
end;
end;
end;
if gdr6=-5 & gdr5=-5 & gdr4=-5 & gdr3=-5 & gdr2~=-5 then do;
do k=1 to dim(schidr2);
if schidr7_1=schidr2(k) & schidr2(k)>0 & anymjr2(k)>=0 then do;
anymjr7_1=anymjr2(k);
major_FLG_r7=2;
end;
end;
end;
if gdr6=-5 & gdr5=-5 & gdr4=-5 & gdr3=-5 & gdr2=-5 then do;
do k=1 to dim(schidr1);
if schidr7_1=schidr1(k) & schidr1(k)>0 & anymjr1(k)>=0 then do;
anymjr7_1=anymjr1(k);
major_FLG_r7=1;
end;
end;
end;
end;


** Round 8;
do i=1 to dim(major81); if major81(i) in (0,98) & anymjr8_1~=1 then anymjr8_1=0; if major81(i)>0 & anymjr8_1~=98 then anymjr8_1=1; end;
do i=1 to dim(major82); if major82(i) in (0,98) & anymjr8_2~=1 then anymjr8_2=0; if major82(i)>0 & anymjr8_2~=98 then anymjr8_2=1; end;
do i=1 to dim(major83); if major83(i) in (0,98) & anymjr8_3~=1 then anymjr8_3=0; if major83(i)>0 & anymjr8_3~=98 then anymjr8_3=1; end;
do i=1 to dim(major84); if major84(i) in (0,98) & anymjr8_4~=1 then anymjr8_4=0; if major84(i)>0 & anymjr8_4~=98 then anymjr8_4=1; end;

if anymjr8_1=. & gdr7~=-5 then do;
do k=1 to dim(schidr7);
if schidr8_1=schidr7(k) & schidr7(k)>0 & anymjr7(k)>=0 then do;
anymjr8_1=anymjr7(k);
major_FLG_r8=7;
end;
end;
if gdr7=-5 & gdr6~=-5 then do;
do k=1 to dim(schidr6);
if schidr8_1=schidr6(k) & schidr6(k)>0 & anymjr6(k)>=0 then do;
anymjr8_1=anymjr6(k);
major_FLG_r8=6;
end;
end;
end;
if gdr7=-5 & gdr6=-5 & gdr5~=-5 then do;
do k=1 to dim(schidr5);
if schidr8_1=schidr5(k) & schidr5(k)>0 & anymjr5(k)>=0 then do;
anymjr8_1=anymjr5(k);
major_FLG_r8=5;
end;
end;
end;
if gdr7=-5 & gdr6=-5 & gdr5=-5 & gdr4~=-5 then do;
do k=1 to dim(schidr4);
if schidr8_1=schidr4(k) & schidr4(k)>0 & anymjr4(k)>=0 then do;
anymjr8_1=anymjr4(k);
major_FLG_r8=4;
end;
end;
end;
if gdr7=-5 & gdr6=-5 & gdr5=-5 & gdr4=-5 & gdr3~=-5 then do;
do k=1 to dim(schidr3);
if schidr8_1=schidr3(k) & schidr3(k)>0 & anymjr3(k)>=0 then do;
anymjr8_1=anymjr3(k);
major_FLG_r8=3;
end;
end;
end;
if gdr7=-5 & gdr6=-5 & gdr5=-5 & gdr4=-5 & gdr3=-5 & gdr2~=-5 then do;
do k=1 to dim(schidr2);
if schidr8_1=schidr2(k) & schidr2(k)>0 & anymjr2(k)>=0 then do;
anymjr8_1=anymjr2(k);
major_FLG_r8=2;
end;
end;
end;
if gdr7=-5 & gdr6=-5 & gdr5=-5 & gdr4=-5 & gdr3=-5 & gdr2=-5 then do;
do k=1 to dim(schidr1);
if schidr8_1=schidr1(k) & schidr1(k)>0 & anymjr1(k)>=0 then do;
anymjr8_1=anymjr1(k);
major_FLG_r8=1;
end;
end;
end;
end;

** Identifying if R was enrolled in a legeitimate degree program in a 2/4 year college, reported having
some major and also reported leaving that college because finished coursework or received a degree.
This dummy is created only when R does not report receiving a college degree in (YSCH-23450).;

** Round 1;
do i=1 to dim(schidr2);
if e23450r2(i)<=0 & (lftscr2(i)=1|lftsc2r2(i)=1) & scoder2(i) in (4,5)
& e27337r2(i) in (1,3,4,5,6) & anymjr2(i)~=0 then clgdgr2(i)=1;
end;
do i=1 to dim(schidr3);
if e23450r3(i)<=0 & (lftscr3(i)=1|lftsc2r3(i)=1) & scoder3(i) in (4,5)
& e27337r3(i) in (1,3,4,5,6) & anymjr3(i)~=0 then clgdgr3(i)=1;
end;
do i=1 to dim(schidr4);
if e23450r4(i)<=0 & (lftscr4(i)=1|lftsc2r4(i)=1) & scoder4(i) in (4,5)
& e27337r4(i) in (1,3,4,5,6) & anymjr4(i)~=0 then clgdgr4(i)=1;
end;
do i=1 to dim(schidr5);
if e23450r5(i)<=0 & (lftscr5(i)=1|lftsc2r5(i)=1) & scoder5(i) in (4,5)
& e27337r5(i) in (1,3,4,5,6) & anymjr5(i)~=0 then clgdgr5(i)=1;
end;
do i=1 to dim(schidr6);
if e23450r6(i)<=0 & lftscr6(i)=1 & scoder6(i) in (4,5)
& e27337r6(i) in (1,3,4,5,6) & anymjr6(i)~=0 then clgdgr6(i)=1;
end;
do i=1 to dim(schidr7);
if e23450r7(i)<=0 & lftscr7(i)=1 & scoder7(i) in (4,5)
& e27337r7(i) in (1,3,4,5,6) & anymjr7(i)~=0 then clgdgr7(i)=1;
end;
do i=1 to dim(schidr8);
if e23450r8(i)<=0 & lftscr8(i)=1 & scoder8(i) in (4,5)
& e27337r8(i) in (1,3,4,5,6) & anymjr8(i)~=0 then clgdgr8(i)=1;
end;

** Compute dates of degree received for respondents when they report receiving a college degree in
YSCH-3113 but do not report receving one in YSCH-23450. In such cases, additional checks are used to
verify that the respondent has indeed received a college degree. We use the degree working
towards (YSCH-27337), school type information (NEW_SCHOOL_CODE), reason they left the school
(NEWSCHOOL_LEFT) and whether they had decided on a major at that college. If we can verify that they
were indeed in a 2/4 year college, working towards a legitimate college degree, left that college
because they had completed coursework, or graduated and had decided on a major at that college then
we use the date of leaving that particular college as the date of receving the college degree
reported in YSCH-3113.;

do i=1 to dim(scoder8);
if clgdgr8(i)=1 then do;
if e27337r8(i)>=1 & e3113r8=4
& aarP=-4 & barP=-4 & marP=-4 & dcrP=-4 & pfrP=-4
& aarC=-4 & barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
aarC=-3;
r8_degIMPr8=4;
aarC=stopcr8(i);
end;
if e27337r8(i)>=3 & e3113r8=5
& barP=-4 & marP=-4 & dcrP=-4 & pfrP=-4
& barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
barC=-3;
r8_degIMPr8=5;
barC=stopcr8(i);
end;
if e27337r8(i)>=4 & e3113r8=6
& marP=-4 & dcrP=-4 & pfrP=-4
& marC=-4 & dcrC=-4 & pfrC=-4 then do;
marC=-3;
r8_degIMPr8=6;
marC=stopcr8(i);
end;
if e27337r8(i)=5 & e3113r8=7 & dcrP=-4 & dcrC=-4 then do;
dcrC=-3;
r8_degIMPr8=7;
dcrC=stopcr8(i);
end;
if e27337r8(i)=6 & e3113r8=8 & pfrP=-4 & pfrC=-4 then do;
pfrC=-3;
r8_degIMPr8=8;
pfrC=stopcr8(i);
end;
end;
end;

do i=1 to dim(scoder7);
if clgdgr7(i)=1 then do;
if e27337r7(i)>=1 & e3113r8=4
& aar7=-4 & bar7=-4 & mar7=-4 & dcr7=-4 & pfr7=-4
& aarC=-4 & barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
aarC=-3;
r8_degIMPr7=4;
aarC=stopcr7(i);
end;
if e27337r7(i)>=3 & e3113r8=5
& bar7=-4 & mar7=-4 & dcr7=-4 & pfr7=-4
& barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
barC=-3;
r8_degIMPr7=5;
barC=stopcr7(i);
end;
if e27337r7(i)>=4 & e3113r8=6
& mar7=-4 & dcr7=-4 & pfr7=-4
& marC=-4 & dcrC=-4 & pfrC=-4 then do;
marC=-3;
r8_degIMPr7=6;
marC=stopcr7(i);
end;
if e27337r7(i)=5 & e3113r8=7 & dcr7=-4 & dcrC=-4 then do;
dcrC=-3;
r8_degIMPr7=7;
dcrC=stopcr7(i);
end;
if e27337r7(i)=6 & e3113r8=8 & pfr7=-4 & pfrC=-4 then do;
pfrC=-3;
r8_degIMPr7=8;
pfrC=stopcr7(i);
end;
end;
end;

do i=1 to dim(scoder6);
if clgdgr6(i)=1 & (hsr6>-4|gdr6>-4) then do;
if e27337r6(i)>=1 & e3113r8=4
& aar6=-4 & bar6=-4 & mar6=-4
& aarC=-4 & barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
aarC=-3;
r8_degIMPr6=4;
if stopcr6(i)>0 then aarC=stopcr6(i);
end;
if e27337r6(i)>=3 & e3113r8=5
& bar6=-4 & mar6=-4
& barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
barC=-3;
r8_degIMPr6=5;
if stopcr6(i)>0 then barC=stopcr6(i);
end;
if e27337r6(i)>=4 & e3113r8=6
& mar6=-4
& marC=-4 & dcrC=-4 & pfrC=-4 then do;
marC=-3;
r8_degIMPr6=6;
if stopcr6(i)>0 then marC=stopcr6(i);
end;
if e27337r6(i)=5 & e3113r8=7 & dcrC=-4 then do;
dcrC=-3;
r8_degIMPr6=7;
if stopcr6(i)>0 then dcrC=stopcr6(i);
end;
if e27337r6(i)=6 & e3113r8=8 & pfrC=-4 then do;
pfrC=-3;
r8_degIMPr6=8;
if stopcr6(i)>0 then pfrC=stopcr6(i);
end;
end;
end;

do i=1 to dim(scoder5);
if clgdgr5(i)=1 & (hsr5>-4|gdr5>-4) then do;
if e27337r5(i)>=1 & e3113r8=4
& aar5=-4 & bar5=-4
& aar6<=-4 & bar6<=-4 & mar6<=-4
& aarC=-4 & barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
aarC=-3;
r8_degIMPr5=4;
if stopcr5(i)>0 then aarC=stopcr5(i);
end;
if e27337r5(i)>=3 & e3113r8=5
& bar5=-4
& bar6<=-4 & mar6<=-4
& barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
barC=-3;
r8_degIMPr5=5;
if stopcr5(i)>0 then barC=stopcr5(i);
end;
if e27337r5(i)>=4 & e3113r8=6
& mar6<=-4
& marC=-4 & dcrC=-4 & pfrC=-4 then do;
marC=-3;
r8_degIMPr5=6;
if stopcr5(i)>0 then marC=stopcr5(i);
end;
if e27337r5(i)=5 & e3113r8=7 & dcrC=-4 then do;
dcrC=-3;
r8_degIMPr5=7;
if stopcr5(i)>0 then dcrC=stopcr5(i);
end;
if e27337r5(i)=6 & e3113r8=8 & pfrC=-4 then do;
pfrC=-3;
r8_degIMPr5=8;
if stopcr5(i)>0 then pfrC=stopcr5(i);
end;
end;
end;

do i=1 to dim(scoder4);
if clgdgr4(i)=1 & (hsr4>-4|gdr4>-4) then do;
if e27337r4(i)>=1 & e3113r8=4
& aar4=-4 & bar4=-4
& aar5<=-4 & bar5<=-4
& aar6<=-4 & bar6<=-4 & mar6<=-4
& aarC=-4 & barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
aarC=-3;
r8_degIMPr4=4;
if stopcr4(i)>0 then aarC=stopcr4(i);
end;
if e27337r4(i)>=3 & e3113r8=5
& bar4=-4
& bar5<=-4
& bar6<=-4 & mar6<=-4
& barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
barC=-3;
r8_degIMPr4=5;
if stopcr4(i)>0 then barC=stopcr4(i);
end;
if e27337r4(i)>=4 & e3113r8=6
& mar6<=-4
& marC=-4 & dcrC=-4 & pfrC=-4 then do;
marC=-3;
r8_degIMPr4=6;
if stopcr4(i)>0 then marC=stopcr4(i);
end;
if e27337r4(i)=5 & e3113r8=7 & dcrC=-4 then do;
dcrC=-3;
r8_degIMPr4=7;
if stopcr4(i)>0 then dcrC=stopcr4(i);
end;
if e27337r4(i)=6 & e3113r8=8 & pfrC=-4 then do;
pfrC=-3;
r8_degIMPr4=8;
if stopcr4(i)>0 then pfrC=stopcr4(i);
end;
end;
end;

do i=1 to dim(scoder3);
if clgdgr3(i)=1 & (hsr3>-4|gdr3>-4) then do;
if e27337r3(i)>=1 & e3113r8=4
& aar3=-4 & bar3=-4
& aar4<=-4 & bar4<=-4
& aar5<=-4 & bar5<=-4
& aar6<=-4 & bar6<=-4 & mar6<=-4
& aarC=-4 & barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
aarC=-3;
r8_degIMPr3=4;
if stopcr3(i)>0 then aarC=stopcr3(i);
end;
if e27337r3(i)>=3 & e3113r8=5
& bar3=-4
& bar4<=-4
& bar5<=-4
& bar6<=-4 & mar6<=-4
& barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
barC=-3;
r8_degIMPr3=5;
if stopcr3(i)>0 then barC=stopcr3(i);
end;
if e27337r3(i)>=4 & e3113r8=6
& mar6<=-4
& marC=-4 & dcrC=-4 & pfrC=-4 then do;
marC=-3;
r8_degIMPr3=6;
if stopcr3(i)>0 then marC=stopcr3(i);
end;
if e27337r3(i)=5 & e3113r8=7 & dcrC=-4 then do;
dcrC=-3;
r8_degIMPr3=7;
if stopcr3(i)>0 then dcrC=stopcr3(i);
end;
if e27337r3(i)=6 & e3113r8=8 & pfrC=-4 then do;
pfrC=-3;
r8_degIMPr3=8;
if stopcr3(i)>0 then pfrC=stopcr3(i);
end;
end;
end;

do i=1 to dim(scoder2);
if clgdgr2(i)=1 & (hsr2>-4|gdr2>-4) then do;
if e27337r2(i)>=1 & e3113r8=4
& aar3=-4 & bar3=-4
& aar4<=-4 & bar4<=-4
& aar5<=-4 & bar5<=-4
& aar6<=-4 & bar6<=-4 & mar6<=-4
& aarC=-4 & barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
aarC=-3;
r8_degIMPr2=4;
if stopcr2(i)>0 then aarC=stopcr2(i);
end;
if e27337r2(i)>=3 & e3113r8=5
& bar3=-4
& bar4<=-4
& bar5<=-4
& bar6<=-4 & mar6<=-4
& barC=-4 & marC=-4 & dcrC=-4 & pfrC=-4 then do;
barC=-3;
r8_degIMPr2=5;
if stopcr2(i)>0 then barC=stopcr2(i);
end;
if e27337r2(i)>=4 & e3113r8=6
& mar6<=-4
& marC=-4 & dcrC=-4 & pfrC=-4 then do;
marC=-3;
r8_degIMPr2=6;
if stopcr2(i)>0 then marC=stopcr2(i);
end;
if e27337r2(i)=5 & e3113r8=7 & dcrC=-4 then do;
dcrC=-3;
r8_degIMPr2=7;
if stopcr2(i)>0 then dcrC=stopcr2(i);
end;
if e27337r2(i)=6 & e3113r8=8 & pfrC=-4 then do;
pfrC=-3;
r8_degIMPr2=8;
if stopcr2(i)>0 then pfrC=stopcr2(i);
end;
end;
end;

** If we have no or bad information about receipt of GED then we use the same technique as above to
impute the date of receipt of GED if the conditions mentioned above are satisfied. Of course, here
we do not use the restriction of having decided on a major.;
if gdrC<=0 then do;
do i=1 to dim(scoder8);
if e3113r8=2 & e23450r8(i)<=0 & lftscr8(i)=1 & scoder8(i) in (4,5) & e27337r8(i)=9 then do;
gdrC=-3;
r8_degIMPr8=2;
gdrC=stopcr8(i);
end;
end;
end;

** If we have no or bad information about receipt of H.S.Diploma then we use the same technique as above
to impute the date of receipt of H.S.Diploma if the conditions mentioned above are satisfied. Of
course, here we do not use the restriction of having decided on a major.;
if hsrP<=-4 & hsrC<=0 & e3113r8=3 then do;
hsrC=-3;
r8_degIMPr8=3;
do i=1 to dim(scoder8);
if e23450r8(i)<=0 & lftscr8(i)=1 & scoder8(i) in (1,2,3) & stopcr8(i)~=. then hsrC=stopcr8(i);
end;
end;

do i=1 to dim(scoder8);
if lftscr8(i)=1 & scoder8(i) in (4,5) & e27337r8(i) in (1,3,4,5,6) then do;
if e3113r8=4 & aarC=-4 then chkdg2=1;
if e3113r8=5 & barC=-4 then chkdg2=2;
if e3113r8=6 & marC=-4 then chkdg2=3;
if e3113r8=7 & dcrC=-4 then chkdg2=4;
if e3113r8=8 & pfrC=-4 then chkdg2=5;
end;
end;

*** Convert all -1 & -2s to -3.;
do i=1 to 7;
if CRP(i) in (-1,-2) then CRP(i)=-3;
if CRC(i) in (-1,-2) then CRC(i)=-3;
end;


*** Check if there is some conflict between information from the current round and that available from
previous rounds.;
do i=1 to 7;
if CRC(i)>0 and CRP(i)>0 & CRC(i)~=CRP(i) then FLG(i)=1;
if CRP(i)>0 and CRC(i)=-3 then FLG(i)=2;
if CRC(i)>0 and CRP(i)=-3 then FLG(i)=3;
end;


*** Merge the results from previous rounds.;
** If only one date is available for any degree i.e. there is no conflict then use that date.;
do i=1 to 7;
if FLG(i)=0 then do;
if CRP(i)~=-4 then CDT(i)=CRP(i);
if CRC(i)~=-4 then CDT(i)=CRC(i);
end;
end;
** If two dates are available for any degree - one from previous rounds and one from this then resolve
the conflict. To resolve the conflict.:
(i) Take the date reported in the earlier round if both dates are valid. If AA or higher have two
valid dates then that is not necessarily a data or questionnaire mistake. A person may have
received the same type of degree in different majors. But it is a data inconsisteny issue if R
reports receiving the same type of degree in the same major from the same institution. So these
must be looked at case by case
(ii) Only the valid date if only one of them is a valid date.;
do i=1 to 7;
if FLG(i) in (1,2) then CDT(i)=CRP(i);
if FLG(i)=3 then CDT(i)=CRC(i);
end;


* What do we do about the cases where R reports receiving a degree in YSCH-3113 that is greater than
what R reports receiving anywhere else in the questionnaire? We decided not to use information from
YSCH-3113 unless it helps to resolve conflicting information;


*** START of Handedits;

if pubid in (83) then do;
CDTGD=-4;
FLG_13900r8=1;
end;

if pubid=2645 then do;
CDTGD=270;
FLG_13900r8=1;
end;
if pubid=4248 then do;
CDTGD=262;
FLG_139000r8=1;
end;
if CDTGD=-4 & pubid in
(12 815 1115 1436 1754 1828 2747 3130 3167 3231 3321 3332
3356 4151 4451 4655 4760 4864 4958 5013 5050 5177 5556 5648
5684 5685 5886 5927 6069 6146 6199 6467 4287 6980 7070 7153
7318 7355 7765 7950 7973 8126 8296 8370 8374 8809 8859 4212)
then do;
CDTGD=-3;
FLG_13900r8=1;
end;

** These Rs reported two dates and the date from their transcripts is now being used.;
if pubid=64 then do;
CDTHS=234;
FLG_COMM=1;
end;
if pubid=256 then do;
CDTHS=222;
FLG_COMM=1;
end;

** Some respondents reported a GED in an earlier round and then reported the highest degree attained
in Round 7 (YSCH-3113) to be H.S. Diploma. In round 8 they reported the highest degree attained to
be none or GED. We eliminate the H.S.Diploma receipt information for these cases.;
if e3113r8 in (1,2) & e3113r7=3 & degIMPr7=3 & gdr7>-4
& hsr1<=-4 & hsr2<=-4 & hsr3<=-4 & hsr4<=-4 & hsr5<=-4 & hsr6<=-4 then do;
CDTHS=-4;
handedit=1;
end;

** Some respondents never reported a GED and then reported the highest degree attained in Round 7
(YSCH-3113) to be GED. In round 8 they reported the highest degree attained to be none. We eliminate
the GED receipt information for these cases.;
if e3113r8=1 & e3113r7=2 & degIMPr7=2 & gdr7>-4 & hsrP=-4 & CDTHS=-4
& gdr1<=-4 & gdr2<=-4 & gdr3<=-4 & gdr4<=-4 & gdr5<=-4 & gdr6<=-4 then do;
CDTGD=-4;
handedit=1;
end;

** In this round R reported the highest degree received was BA/BS. R also reported HGA=18 & HGC=18 in
the single items. However, because we erroneously coded R as having a HGA<8, R missed the college loops.
R reported being enrolled in a 4-yr college in an earlier round where R reported working towards a
BA degree. In this round R reported being enrolled in the same college and the reason R left it was
because R received a degree/completed coursework. Using all this information we conclude that R
received the BA/BS degree when R was last enrolled at this college.;
if pubid=4003 then do;
CDTBA=292;
handedit=1;
end;

** These Respondents were never asked the H.S.Diploma receipt question, they were asked the GED receipt
question to which they reported in the affirmative and in the highest degree received question they
reported receiving a H.S.Diploma; * NEW;
if e3113r8=3 & hsrP=-4 & gdrP=-4 & e11700r8=-4 & e13300r8=1 then do;
CDTHS=CDTGD;
CDTGD=-4;
handedit=1;
end;

*** END of Handedits;

** Compute the year of receiving a degree;
do i=1 to 7;
if CDT(i)<0 then YDT(i)=CDT(i);
if 181<=CDT(i)<=192 then YDT(i)=1995;
if 193<=CDT(i)<=204 then YDT(i)=1996;
if 205<=CDT(i)<=216 then YDT(i)=1997;
if 217<=CDT(i)<=228 then YDT(i)=1998;
if 229<=CDT(i)<=240 then YDT(i)=1999;
if 241<=CDT(i)<=252 then YDT(i)=2000;
if 253<=CDT(i)<=264 then YDT(i)=2001;
if 265<=CDT(i)<=276 then YDT(i)=2002;
if 277<=CDT(i)<=288 then YDT(i)=2003;
if 289<=CDT(i)<=300 then YDT(i)=2004;
end;

** Compute degrees received and highest degree received variables from YSCH-23450;
hgdegr8=1;
do i=1 to 7;
DEG(i)=0;
if CDT(i)>-4 then do;
DEG(i)=1;
hgdegr8=i+1;
end;
end;

** Compute dummy to check if highest degree computed from YSCH-23450 and that reported in YSCH-3113 are
the same;

if e3113r8=hgdegr8 & e3113r8>1 & hgdegr8>1 then do;
e3lower=0;
e3higher=0;
end;

if e3113r8~=hgdegr8 then do;
if e3113r8=1 & hgdegr8>1 then e3lower=10+hgdegr8;
if e3113r8=2 & hgdegr8>2 then e3lower=20+hgdegr8;
if e3113r8=3 & hgdegr8>3 then e3lower=30+hgdegr8;
if e3113r8=4 & hgdegr8>4 then e3lower=40+hgdegr8;
if e3113r8=5 & hgdegr8>5 then e3lower=50+hgdegr8;
if e3113r8=6 & hgdegr8>6 then e3lower=60+hgdegr8;
if e3113r8=7 & hgdegr8>7 then e3lower=70+hgdegr8;
if e3113r8=8 & hgdegr8>8 then e3lower=80+hgdegr8;
end;
if e3113r8~=hgdegr8 then do;
if hgdegr8=1 & e3113r8>1 then e3higher=10+e3113r8;
if hgdegr8=2 & e3113r8>2 then e3higher=20+e3113r8;
if hgdegr8=3 & e3113r8>3 then e3higher=30+e3113r8;
if hgdegr8=4 & e3113r8>4 then e3higher=40+e3113r8;
if hgdegr8=5 & e3113r8>5 then e3higher=50+e3113r8;
if hgdegr8=6 & e3113r8>6 then e3higher=60+e3113r8;
if hgdegr8=7 & e3113r8>7 then e3higher=70+e3113r8;
if hgdegr8=8 & e3113r8>8 then e3higher=80+e3113r8;
end;

do i=1 to dim(e23450r8);
if e23450r8(i) in (-1, -2, -3) then hgdegr8=-3; * If degree received cannot be determined;
end;

ENDSAS;

Return to top


Number of Grades Repeated or Skipped

Variables Created: 

Variables Used

Name in Program

Question Name on CD

 

Name in Program

Question Name on CD

 

Name in Program

Question Name on CD

Round 1     Round 8 cont'd     Round 8 cont'd  
e3500r1 YSCH-3500   e3112r8 YSCH-3112   e9946r8_211 YSCH-9946.02.01.01
e3900r1 YSCH-3900   e3878r8 YSCH-3878   e9946r8_212 YSCH-9946.02.01.02
e4000r1 YSCH-4000   e8416r8_11 YSCH-8416.01.01   e9946r8_213 YSCH-9946.02.01.03
e5000r1 YSCH-5000   e8416r8_12 YSCH-8416.01.02   e9946r8_311 YSCH-9946.03.01.01
intmr1 CV_INTERVIEW_DATE 1997   e8416r8_21 YSCH-8416.02.01   e9946r8_312 YSCH-9946.03.01.02
intyr1 CV_INTERVIEW_DATE 1997   e8416r8_31 YSCH-8416.03.01   e9946r8_313 YSCH-9946.03.01.03
NUMREPr1 CV_GRADES_REPEAT_EVER   e8416r8_41 YSCH-8416.04.01   e9946r8_511 YSCH-9946.05.01.01
NUMSKIPr1 CV_GRADE_SKIPPED_EVER   e8416r8_51 YSCH-8416.05.01   e10099mr8_111 YSCH-10099.01.01.01~M
HGCr1_symbol COMPLETED   e8722r8_11 YSCH-8722.01.01   e10099yr8_111 YSCH-10099.01.01.01~Y
      e8722r8_21 YSCH-8722.02.01   e10099mr8_112 YSCH-10099.01.01.02~M
Round 2     e8722r8_31 YSCH-8722.03.01   e10099yr8_112 YSCH-10099.01.01.02~Y
e3104r2 YSCH-3104   e8722r8_41 YSCH-8722.04.01   e10099mr8_113 YSCH-10099.01.01.03~M
e3061r2 YSCH-3061   e8722r8_51 YSCH-8722.05.01   e10099yr8_113 YSCH-10099.01.01.03~Y
intmr2 CV_INTERVIEW_DATE 1998   e8774mr8_11 YSCH-8774.01.01~M   e10099mr8_211 YSCH-10099.02.01.01~M
intyr2 CV_INTERVIEW_DATE 1998   e8774yr8_11 YSCH-8774.01.01~Y   e10099yr8_211 YSCH-10099.02.01.01~Y
NUMREPr2 CV_GRADES_REPEAT_EVER   e8774mr8_12 YSCH-8774.01.02~M   e10099mr8_212 YSCH-10099.02.01.02~M
NUMREPjr2 CV_GRADES_REPEAT_YR   e8774yr8_12 YSCH-8774.01.02~Y   e10099yr8_212 YSCH-10099.02.01.02~Y
NUMSKIPr2 CV_GRADE_SKIPPED_EVER   e8774mr8_21 YSCH-8774.02.01~M   e10099mr8_213 YSCH-10099.02.01.03~M
NUMSKIPjr2 CV_GRADE_SKIPPED_YR   e8774yr8_21 YSCH-8774.02.01~Y   e10099yr8_213 YSCH-10099.02.01.03~Y
      e8977r8_11 YSCH-8977.01.01   e10099mr8_311 YSCH-10099.03.01.01~M
Round 3     e8977r8_21 YSCH-8977.02.01   e10099yr8_311 YSCH-10099.03.01.01~Y
e3104r3 YSCH-3104   e9131r8_11 YSCH-9131.01.01   e10099mr8_312 YSCH-10099.03.01.02~M
e3061r3 YSCH-3061   e9131r8_12 YSCH-9131.01.02   e10099yr8_312 YSCH-10099.03.01.02~Y
intmr3 CV_INTERVIEW_DATE 1999   e9131r8_21 YSCH-9131.02.01   e10099mr8_313 YSCH-10099.03.01.03~M
intyr3 CV_INTERVIEW_DATE 1999   e9131r8_31 YSCH-9131.03.01   e10099yr8_313 YSCH-10099.03.01.03~Y
NUMREPr3 CV_GRADES_REPEAT_EVER   e9131r8_41 YSCH-9131.04.01   e10099mr8_511 YSCH-10099.05.01.01~M
NUMREPjr3 CV_GRADES_REPEAT_YR   e9131r8_51 YSCH-9131.05.01   e10099yr8_511 YSCH-10099.05.01.01~Y
NUMSKIPr3 CV_GRADE_SKIPPED_EVER   e9335mr8_11 YSCH-9335.01.01~M   pubid PUBID
NUMSKIPjr3 CV_GRADE_SKIPPED_YR   e9335yr8_11 YSCH-9335.01.01~Y   intmr8 CV_INTERVIEW_DATE 2004
      e9335mr8_21 YSCH-9335.02.01~M   intyr8 CV_INTERVIEW_DATE 2004
Round 4     e9335yr8_21 YSCH-9335.02.01~Y   PREVGRADE_IN_r8 SYMBOL!PREV!GRADE_IN
e3104r4 YSCH-3104   e9335mr8_31 YSCH-9335.03.01~M   prehgar8 SYMBOL!PREV!HGA
e3061r4 YSCH-3061   e9335yr8_31 YSCH-9335.03.01~Y      
intmr4 CV_INTERVIEW_DATE 2000   e9335mr8_41 YSCH-9335.04.01~M   Roster Data:  
intyr4 CV_INTERVIEW_DATE 2000   e9335yr8_41 YSCH-9335.04.01~Y   scoder8_1 NEWSCHOOL_SCHCODE.01
NUMREPr4 CV_GRADES_REPEAT_EVER   e9335mr8_51 YSCH-9335.05.01~M   scoder8_2 NEWSCHOOL_SCHCODE.02
NUMREPjr4 CV_GRADES_REPEAT_YR   e9335yr8_51 YSCH-9335.05.01~Y   scoder8_3 NEWSCHOOL_SCHCODE.03
NUMSKIPr4 CV_GRADE_SKIPPED_EVER   e9589r8_111 YSCH-9589.01.01.01   scoder8_4 NEWSCHOOL_SCHCODE.04
NUMSKIPjr4 CV_GRADE_SKIPPED_YR   e9589r8_112 YSCH-9589.01.01.02   scoder8_5 NEWSCHOOL_SCHCODE.05
      e9589r8_113 YSCH-9589.01.01.03   strtmr8_11 NEWSCHOOL_START1.01~M
Round 5     e9589r8_121 YSCH-9589.01.02.01   strtyr8_11 NEWSCHOOL_START1.01~Y
e3104r5 YSCH-3104   e9589211 YSCH-9589.02.01.01   strtmr8_12 NEWSCHOOL_START1.02~M
e3061r5 YSCH-3061   e9589r8_212 YSCH-9589.02.01.02   strtyr8_12 NEWSCHOOL_START1.02~Y
intmr5 CV_INTERVIEW_DATE 2001   e9589r8_213 YSCH-9589.02.01.03   strtmr8_13 NEWSCHOOL_START1.03~M
intyr5 CV_INTERVIEW_DATE 2001   e9589r8_311 YSCH-9589.03.01.01   strtyr8_13 NEWSCHOOL_START1.03~Y
NUMREPr5 CV_GRADES_REPEAT_EVER   e9589r8_312 YSCH-9589.03.01.02   strtmr8_14 NEWSCHOOL_START1.04~M
NUMREPjr5 CV_GRADES_REPEAT_YR   e9589r8_313 YSCH-9589.03.01.03   strtyr8_14 NEWSCHOOL_START1.04~Y
NUMSKIPr5 CV_GRADE_SKIPPED_EVER   e9589r8_511 YSCH-9589.05.01.01   strtmr8_15 NEWSCHOOL_START1.05~M
NUMSKIPjr5 CV_GRADE_SKIPPED_YR   e9691mr8_111 YSCH-9691.01.01.01~M   strtyr8_15 NEWSCHOOL_START1.05~Y
      e9691yr8_111 YSCH-9691.01.01.01~Y   strtmr8_21 NEWSCHOOL_START2.01~M
Round 6     e9691mr8_112 YSCH-9691.01.01.02~M   strtyr8_21 NEWSCHOOL_START2.01~Y
e3104r6 YSCH-3104   e9691yr8_112 YSCH-9691.01.01.02~Y   strtmr8_22 NEWSCHOOL_START2.02~M
e3061r6 YSCH-3061   e9691mr8_113 YSCH-9691.01.01.03~M   strtyr8_22 NEWSCHOOL_START2.02~Y
intmr6 CV_INTERVIEW_DATE 2002   e9691yr8_113 YSCH-9691.01.01.03~Y   strtmr8_31 NEWSCHOOL_START3.01~M
intyr6 CV_INTERVIEW_DATE 2002   e9691mr8_121 YSCH-9691.01.02.01~M   strtyr8_31 NEWSCHOOL_START3.01~Y
NUMREPr6 CV_GRADES_REPEAT_EVER   e9691yr8_121 YSCH-9691.01.02.01~Y   strtmr8_32 NEWSCHOOL_START3.02~M
NUMREPjr6 CV_GRADES_REPEAT_YR   e9691m211 YSCH-9691.02.01.01~M   strtyr8_32 NEWSCHOOL_START3.02~Y
NUMSKIPr6 CV_GRADE_SKIPPED_EVER   e9691yr8_211 YSCH-9691.02.01.01~Y   stopmr8_11 NEWSCHOOL_STOP1.01~M
NUMSKIPjr6 CV_GRADE_SKIPPED_YR   e9691mr8_212 YSCH-9691.02.01.02~M   stopyr8_11 NEWSCHOOL_STOP1.01~Y
      e9691yr8_212 YSCH-9691.02.01.02~Y   stopmr8_12 NEWSCHOOL_STOP1.02~M
Round 7     e9691mr8_213 YSCH-9691.02.01.03~M   stopyr8_12 NEWSCHOOL_STOP1.02~Y
e3104r7 YSCH-3104   e9691yr8_213 YSCH-9691.02.01.03~Y   stopmr8_13 NEWSCHOOL_STOP1.03~M
e3061r7 YSCH-3061   e9691mr8_311 YSCH-9691.03.01.01~M   stopyr8_13 NEWSCHOOL_STOP1.03~Y
intmr7 CV_INTERVIEW_DATE 2003   e9691yr8_311 YSCH-9691.03.01.01~Y   stopmr8_14 NEWSCHOOL_STOP1.04~M
intyr7 CV_INTERVIEW_DATE 2003   e9691mr8_312 YSCH-9691.03.01.02~M   stopyr8_14 NEWSCHOOL_STOP1.04~Y
NUMREPr7 CV_GRADES_REPEAT_EVER   e9691yr8_312 YSCH-9691.03.01.02~Y   stopmr8_15 NEWSCHOOL_STOP1.05~M
NUMREPjr7 CV_GRADES_REPEAT_YR   e9691mr8_313 YSCH-9691.03.01.03~M   stopyr8_15 NEWSCHOOL_STOP1.05~Y
NUMSKIPr7 CV_GRADE_SKIPPED_EVER   e9691yr8_313 YSCH-9691.03.01.03~Y   stopmr8_21 NEWSCHOOL_STOP2.01~M
NUMSKIPjr7 CV_GRADE_SKIPPED_YR   e9691mr8_511 YSCH-9691.05.01.01~M   stopyr8_21 NEWSCHOOL_STOP2.01~Y
      e9691yr8_511 YSCH-9691.05.01.01~Y   stopmr8_22 NEWSCHOOL_STOP2.02~M
Round 8     e9793r8_111 YSCH-9793.01.01.01   stopyr8_22 NEWSCHOOL_STOP2.02~Y
e2857r8 YSCH-2857   e9946r8_111 YSCH-9946.01.01.01   stopmr8_31 NEWSCHOOL_STOP3.01~M
e3103r8 YSCH-3103   e9946r8_112 YSCH-9946.01.01.02   stopyr8_31 NEWSCHOOL_STOP3.01~Y
e3104r8 YSCH-3104   e9946r8_113 YSCH-9946.01.01.03   stopmr8_32 NEWSCHOOL_STOP3.02~M
e3010r8 YSCH-3010   e9946r8_121 YSCH-9946.01.02.01   stopyr8_32 NEWSCHOOL_STOP3.02~Y
e3061r8 YSCH-3061            

 


/*Intermediate variables created in current round (R8)
ENROLL enrolled at date of interview in current round -- created
Intermediate variables created in previous round (R7)
r7bfrpev Total number of grades repeated ever up to previous round
r7bfskev Total number of grades skipped ever up to previous round
r7bf2857 HGA reported up to previous round
r7bfint The most recent interview date up to previous round (in continuous month scheme)
r7bfat1-r7bfat15 The grade attended up to previous round in order
r7bfst1-r7bfst15 The starting date for each grade attended up to previous round (in continuous month scheme)
r7bfed1-r7bfed15 The ending date for each grade attended up to previous round (in continuous month scheme)
r7bfcp1-r7bfcp15 The dummy that each grade is completed or not up to previous round */

/*As in round 4 onwards we are not using the read-in symbol variable for the first grade the youths enrolled, instead, we are using YSCH-8416.01.01. The reason for this is that, in rounds 2 and 3, we asked the question YSCH-8263 ("Is this a DLI school") and YSCH-3401("Is this the first enrollment period") if they answered "yes" to YSCH-8263. So, only the people who are not in the first enrollment period go on to question YSCH-8416.01.01. But in round 4 and 5, we don't ask the question YSCH-3401 anymore. So, even though a youth was in the first enrollment period of DLI school, we still go on to YSCH-8416.01.01. In this case, we rather use YSCH-8416.01.01 for the first grade attended than the symbol variable read in from the previous rounds. */

***** PROGRAM STARTS;

if e3500r1>=0 then HGAr1=e3500r1;
if e4000r1>=0 then HGAr1=e4000r1;
if e3104r2>-1 then HGAr1=e3104r2;

if e5000r1>=0 then HGCr1=e5000r1;
if HGCr1_symbol>=0 then HGCr1=HGCr1_symbol;
*** Added on February 24, 2006;
if e3061r2>=0 then HGCr1=e3061r2;
if e3061r2=-5 then do;
if e3061r3>=0 then HGCr1=e3061r3;
if e3061r3=-5 then do;
if e3061r4>=0 then HGCr1=e3061r4;
if e3061r4=-5 then do;
if e3061r5>=0 then HGCr1=e3061r5;
if e3061r5=-5 then do;
if e3061r6>=0 then HGCr1=e3061r6;
if e3061r6=-5 then do;
if e3061r7>=0 then HGCr1=e3061r7;
if e3061r7=-5 then do;
if e3061r8>=0 then HGCr1=e3061r8;
end;
end;
end;
end;
end;
end;
if hsr1>-4 & hgcr1<12 then HGCr1=12;

** Interview dates in cumulative months;
if intyr8>0 & intmr8>0 then doicm=((intyr8-1980)*12)+intmr8;

** Create new array of start dates for first enrollment in a school depending on whether R corrected
roster data;

array strtm (*) strtmr8_11 strtmr8_12 strtmr8_13 strtmr8_14 strtmr8_15 ; * Start mo from roster;
array strty (*) strtyr8_11 strtyr8_12 strtyr8_13 strtyr8_14 strtyr8_15 ; * Start yr from roster;
array e8722 (*) e8722r8_11 e8722r8_21 e8722r8_31 e8722r8_41 e8722r8_51 ; * Verify start date;
array e8774m (*) e8774mr8_11 e8774mr8_21 e8774mr8_31 e8774mr8_41 e8774mr8_51; * Corrected start mo;
array e8774y (*) e8774yr8_11 e8774yr8_21 e8774yr8_31 e8774yr8_41 e8774yr8_51; * Corrected start yr;
array startm (*) start1m start2m start3m start4m start5m ; * Correct start mo, created;
array starty (*) start1y start2y start3y start4y start5y ; * Correct start yr, created;

numstart=0;
do i=1 to dim(strtm);
if e8774m(i)>0 & e8774y(i)>0 then do;
startm(i)=e8774m(i);
starty(i)=e8774y(i);
end;
else if e8774m(i)<=0|e8774y(i)<=0|e8722(i)=1 then do;
startm(i)=strtm(i);
starty(i)=strty(i);
numstart=numstart+1;
end;
end;


** Create arrays of grades attended, whether they were completed, and start and completion dates;

* Grade attended;
array gr_attd (*) sym1gr11 e8416r8_12 e8416r8_21 e8416r8_31 e8416r8_41 e8416r8_51
e9589r8_111 e9589r8_112 e9589r8_113 e9589r8_121
e9589r8_211 e9589r8_212 e9589r8_213
e9589r8_311 e9589r8_312 e9589r8_313
e9589r8_511;

* Completed - yes/no;
array gr_comp (*) e9131r8_11 e9131r8_12 e9131r8_21 e9131r8_31 e9131r8_41 e9131r8_51
e9946r8_111 e9946r8_112 e9946r8_113 e9946r8_121
e9946r8_211 e9946r8_212 e9946r8_213
e9946r8_311 e9946r8_312 e9946r8_313
e9946r8_511;

* Date of grade enrollment/start - month;
array sdate_m (*) start1m e8774mr8_12 start2m start3m start4m start5m
e9691mr8_111 e9691mr8_112 e9691mr8_113 e9691mr8_121
e9691mr8_211 e9691mr8_212 e9691mr8_213
e9691mr8_311 e9691mr8_312 e9691mr8_313
e9691mr8_511;

* Date of grade enrollment/start - year;
array sdate_y (*) start1y e8774yr8_12 start2y start3y start4y start5y
e9691yr8_111 e9691yr8_112 e9691yr8_113 e9691yr8_121
e9691yr8_211 e9691yr8_212 e9691yr8_213
e9691yr8_311 e9691yr8_312 e9691yr8_313
e9691yr8_511;

* Date of grade completion - month;
array cdate_m (*) e9335mr8_11 e9335mr8_12 e9335mr8_21 e9335mr8_31 e9335mr8_41 e9335mr8_51
e10099mr8_111 e10099mr8_112 e10099mr8_113 e10099mr8_121
e10099mr8_211 e10099mr8_212 e10099mr8_213
e10099mr8_311 e10099mr8_312 e10099mr8_313
e10099mr8_511;

* Date of grade completion - year;
array cdate_y (*) e9335yr8_11 e9335yr8_12 e9335yr8_21 e9335yr8_31 e9335yr8_41 e9335yr8_51
e10099yr8_111 e10099yr8_112 e10099yr8_113 e10099yr8_121
e10099yr8_211 e10099yr8_212 e10099yr8_213
e10099yr8_311 e10099yr8_312 e10099yr8_313
e10099yr8_511;

** Create arrays of all grades attended and completed and their start and complete dates;

* Assign GRA the number of elements in the new grades array to be created.;
GRA=9;

* Grade attended;
array attd (9) attd1-attd9;

* Grade completed;
array comp (9) comp1-comp9;

* Date of grade enrollment/start - month;
array stmo (9) stmo1-stmo9;

* Date of grade enrollment/start - year;
array styr (9) styr1-styr9;

* Date of grade completion - month;
array cpmo (9) cpmo1-cpmo9;

* Date of grade completion - year;
array cpyr (9) cpyr1-cpyr9;


** Set all new array vars to -4;
do i=1 to GRA;
stmo(i)=-4;
styr(i)=-4;
cpmo(i)=-4;
cpyr(i)=-4;
comp(i)=-4;
attd(i)=-4;
end;


** Record all grades completed and their completion dates;
j=1;
do i= 1 to dim(gr_attd);
if gr_comp(i)=1 & gr_attd(i) not in (-4,-5) then do;
comp(j)=gr_attd(i);
cpmo(j)=cdate_m(i);
cpyr(j)=cdate_y(i);
j=j+1;
end;
end;

** Record all grades attended and their start dates;
k=1;
flag1=0;
if e9131r8_11 not in (-4,-5) then do;
if sym1gr11 not in (-4,-5) then do;
attd(k)=sym1gr11;
if start1m>0 then stmo(k)=start1m;
if start1y>0 then styr(k)=start1y;
if e8774mr8_11=-4 & e8774yr8_11=-4 & strtmr8_11=-4 & strtyr8_11=-4 then flag1=1;
*if e8774mr8_11=-4 & e8774yr8_11=-4 & strtmr8_11=-4 & strtyr8_11=-4 & r1intyr>0
then styr(k)=r1intyr;
k=k+1;
end;
do i=2 to dim(gr_attd);
if gr_comp(i)~=-4 & gr_comp(i)~=. then do;
attd(k)=gr_attd(i);
stmo(k)=sdate_m(i);
styr(k)=sdate_y(i);
k=k+1;
end;
end;
end;


** Create date in continuous months for each start and complete date in arrays;

* Date of grade completion in continuous month scheme;
array cpcm (9) cpcm1-cpcm9;

* Date of grade enrollment/start in continuous month scheme;
array stcm (9) stcm1-stcm9;

do i=1 to GRA;
if cpyr(i)>0 & cpmo(i)>0 then cpcm(i)=((cpyr(i)-1980)*12)+cpmo(i);
else if cpyr(i) in (-1, -2, -3)|cpmo(i) in (-1, -2, -3) then cpcm(i)=-3;
else if cpyr(i)=-4|cpmo(i)=-4 then cpcm(i)=-4;
if styr(i)>0 & stmo(i)>0 then stcm(i)=((styr(i)-1980)*12)+stmo(i);
else if styr(i) in (-1, -2, -3)|stmo(i) in (-1, -2, -3) then stcm(i)=-3;
else if styr(i)=-4|stmo(i)=-4 then stcm(i)=-4;
end;


** Create new arrays of started and completed grades that have grades listed only once and in order
- report latest complete date;

* Completed grade and date of grade completion when grades have been listed only once and in order;
array NCOMP (9) NCOMP1-NCOMP9;
array NCDAT (9) NCDAT1-NCDAT9;

NCOMP1=comp1;
NCDAT1=cpcm1;
reorder=0;

** First make sure that the first element in the array is the lowest grade and the latest date for that
grade;

do i=2 to GRA;
if comp(i)>0 then do;
if comp(i)=NCOMP1 & cpcm(i)>NCDAT1 then NCDAT1=cpcm(i);
else if comp(i)<NCOMP1 then do;
NCOMP1=comp(i);
NCDAT1=cpcm(i);
reorder=reorder+1;
end;
end;
end;

do j=2 to GRA;
do i=1 to GRA;
if NCOMP(j-1)~=. then do;
if comp(i)=NCOMP(j-1) & cpcm(i)>NCDAT(j-1) then NCDAT(j-1)=cpcm(i);
else if comp(i)=NCOMP(j-1)+1 then do;
NCOMP(j)=comp(i);
NCDAT(j)=cpcm(i);
end;
else if NCOMP(j)=. & comp(i)>NCOMP(j-1) then do;
NCOMP(j)=comp(i);
NCDAT(j)=cpcm(i);
reorder=reorder+1;
end;
end;
end;
end;

** Create a new array with all grades attended in order and an array with the earliest date each grade
was started;

* Intermediate variables;
array tmpattd (9) tmpattd1-tmpattd9;
array tmpadat (9) tmpadat1-tmpadat9;

* Grades attended and the start dates for enrollment in these grades in proper order;
array NATTD (9) NATTD1-NATTD9;
array NADAT (9) NADAT1-NADAT9;


do i=1 to GRA;
tmpattd(i)=attd(i);
tmpadat(i)=stcm(i);
end;

i=1;
k=1;
do i=1 to GRA;
do j=i+1 to GRA;
if tmpattd(j)~=-4 then do;
if 0<tmpattd(j)<tmpattd(i) then do;
att_temp=tmpattd(i);
dat_temp=tmpadat(i);
tmpattd(i)=tmpattd(j);
tmpadat(i)=tmpadat(j);
tmpattd(j)=att_temp;
tmpadat(j)=dat_temp;
reorder=reorder+1;
end;
end;
end;
if i=1 then do;
NATTD(k)=tmpattd(i);
NADAT(k)=tmpadat(i);
end;
if tmpattd(i)=NATTD(k) then do;
if (0<tmpadat(i)<NADAT(k))|(NADAT(k)=-4 & tmpadat(i)>0) then do;
NADAT(k)=tmpadat(i);
end;
else if tmpadat(i) in (-1,-2,-3)|NADAT(k) in (-1,-2,-3) then NADAT(k)=-3;
end;
else if tmpattd(i)>NATTD(k) then do;
k=k+1;
NATTD(k)=tmpattd(i);
NADAT(k)=tmpadat(i);
end;
end;

** Compute the last enrollment date - stopdate;

* School stop date - month;
array stopm (*) stopmr8_11 stopmr8_21 stopmr8_31
stopmr8_12 stopmr8_22 stopmr8_32
stopmr8_13
stopmr8_14
stopmr8_15;

* School stop date - year;
array stopy (*) stopyr8_11 stopyr8_21 stopyr8_31
stopyr8_12 stopyr8_22 stopyr8_32
stopyr8_13
stopyr8_14
stopyr8_15;

* School stop date in continuous month scheme;
array stopd (*) stopd11 stopd21 stopd31
stopd12 stopd22 stopd32
stopd13
stopd14
stopd15;

* School code;
array scode (*) scoder8_1 scoder8_1 scoder8_1
scoder8_2 scoder8_2 scoder8_2
scoder8_3
scoder8_4
scoder8_5;

do i=1 to dim(stopm);
if stopy(i)>0 & stopm(i)>0 then stopd(i)=((stopy(i)-1980)*12)+stopm(i);
else if stopy(i)=-5 then stopd(i)=-5;
else if stopy(i) in (-1,-2,-3)|stopm(i) in (-1,-2,-3) then stopd(i)=-3;
end;

if ENROLL=0 then do;
if scoder8_1 in (1,2,3) then stopdate=stopd11;
do i=2 to dim(stopm);
if scode(i) in (1,2,3) & stopd(i)>stopdate then stopdate=stopd(i);
end;
end;
else if ENROLL=1 then stopdate=-4;

** Compute end dates for attended grades. Find the end date for each grade attended
- if R doesn't give a completion date then:
(a) choose the month before they started the next grade,
(b) if there is not another grade and currently enrolled then take the interview date,
(c) if there is not another grade and not currently enrolled then take the last stop date - stopdate,
(d) if the enrollment date for the grade is the last interview date then take the next june.;

** Date of completion/stop attending a grade;
array NEDAT (9) NEDAT1-NEDAT9;

** Flags of grade completion;
array ISCOM (9) ISCOM1-ISCOM9;

do i=1 to GRA;
if NATTD(i)~=. then ISCOM(i)=0;
end;

endimp=0;

do i=1 to GRA;
do j=1 to GRA;
if NATTD(i)=NCOMP(j) & NATTD(i)>0 then do;
NEDAT(i)=NCDAT(j);
ISCOM(i)=1;
end;
end;
if NATTD(i)~=. & NEDAT(i)=. & NADAT(i)~=PRbfint & NADAT(i)~=NADAT(i+1) & NADAT(i+1)~=. then do;
NEDAT(i)=NADAT(i+1)-1;
endimp=1;
end;
else if NATTD(i)~=. & NEDAT(i)=. & NATTD(i+1)=. & ENROLL=1 then do;
NEDAT(i)=doicm;
endimp=1;
end;
else if NATTD(i)~=. & NEDAT(i)=. & NATTD(i+1)=. & ENROLL=0 then do;
NEDAT(i)=stopdate;
endimp=1;
end;
else if NEDAT(i)=. & NADAT(i)=PRbfint then do;
endimp=1;
if NADAT(i)<=210 then NEDAT(i)=210;
else if 211<=NADAT(i)<=222 then NEDAT(i)=222;
else if 223<=NADAT(i)<=234 then NEDAT(i)=234;
else if 235<=NADAT(i)<=246 then NEDAT(i)=246;
else if 247<=NADAT(i)<=258 then NEDAT(i)=258;
else if 259<=NADAT(i)<=270 then NEDAT(i)=270;
else if 271<=NADAT(i)<=282 then NEDAT(i)=282;
else if 283<=NADAT(i)<=294 then NEDAT(i)=294;
else if 295<=NADAT(i)<=306 then NEDAT(i)=306;
else if 307<=NADAT(i)<=318 then NEDAT(i)=318;
end;
end;


** Delete the grades whose information is repeatedly reported in the current round: If a grade is
reported in the previous rounds and was completed, we don't repeat this grade's info. in this round;

* Assign GRB the number of elements in this array of grades.;
GRB=15;

* The grade attended up to the previous round in order;
array PRbfat (15) PRbfat1-PRbfat15;

* Enrollment dates for grade attended up to the previous round in order;
array PRbfst (15) PRbfst1-PRbfst15;

* Stop dates for grade attended up to the previous round in order;
array PRbfed (15) PRbfed1-PRbfed15;

* Flag to indicate whether the grade was completed or not for grades attended up to the previous round
in order;
array PRbfcp (15) PRbfcp1-PRbfcp15;

* Intermediate variables;
array tmp2att (9) tmp2att1-tmp2att9;

do i=1 to GRA;
tmp2att(i)=NATTD(i);
end;

backcut=0;
ncut=0;
backrep=0;

do i=1 to GRA;
do j=1 to GRB;
if 0<tmp2att(i)<13 & tmp2att(i)=PRbfat(j) & PRbfcp(j)=1 then do;
j=GRB;
backcut=1;
ncut=ncut+1;
do k=i+1-ncut to GRA-ncut;
if NATTD(k+1)~=. then do;
NATTD(k)=NATTD(k+1);
NADAT(k)=NADAT(k+1);
NEDAT(k)=NEDAT(k+1);
ISCOM(k)=ISCOM(k+1);
end;
else do;
NATTD(k)=.;
NADAT(k)=.;
NEDAT(k)=.;
ISCOM(k)=0;
k=GRA-ncut;
end;
end;
end;
end;
end;

if 0<NATTD1<13 then do;
do i=1 to GRB;
if PRbfat(i)>=NATTD1 then do;
if PRbfat(i+1)~=. then backrep=1;
if PRbfcp(i)=1 then backrep=2;
end;
end;
end;


** Flag the case where the reported grades are jumping;

badpre=0;
replace=0;
jumprep1=0;
jumprep2=0;
jumpge21=0;
jumpge22=0;

if PRbfat1~=. then do;
do i=1 to (GRB-1);
if PRbfat(i)~=. & PRbfat(i+1)=. then do;
lphigh=PRbfat(i);
lphighst=PRbfst(i);
lphighed=PRbfed(i);
lphighcp=PRbfcp(i);
lpnum=i;
i=GRB;
end;
end;
end;
else lphigh=-5;

if 0<NATTD1<13 then do;
if (lphigh~=-5 & ((NATTD1=lphigh+1 & lphighcp~=1)|NATTD1>lphigh+1)) then jumprep1=1;
if (lphigh=-5 & ((HGCr1>0 & NATTD1>=HGCr1+2)|(HGAr1>0 & NATTD1>=HGAr1+2))) then jumprep2=1;
if (lphigh~=-5 & NATTD1>=lphigh+2) then jumpge21=1;
if (lphigh=-5 & HGCr1>0 & NATTD1>=HGCr1+3) then jumpge22=1;
end;

** Substitute start dates in the previous round for first grade in loops;

if 0<NATTD1<13 & PRbfat1~=. then do;
do i=1 to (GRB-1);
if (PRbfst(i)>PRbfed(i) & PRbfed(i)>0)
or (PRbfed(i)>PRbfst(i+1) & PRbfst(i+1)>0)
or (PRbfst(i+1)>PRbfed(i+1) & PRbfed(i+1)>0) then do;
NADAT1=-3;
badpre=1;
end;
else if PRbfat(i)=NATTD1 & PRbfat(i+1)=. & PRbfcp(i)=0 & badpre~=1 then do;
NADAT1=PRbfst(i);
replace=1;
end;
end;
end;
else if -4<NATTD1<=0 then NADAT1=-3;

***** CREATE THE FINAL VARIABLES;

** Measure the length that a respondent was in each completed grade and count the number of grades
skipped and repeated;

array lengtha (9) length1-length9;

REPEAT=0;
REPEATj=0;
skipleng=0;
skipl_j=0;
SKIP=-16;
SKIPj=-16;
oldstrt=0;
nocomp=0;
*skipback=0;


do i=1 to (GRA-1);
if 0<NATTD(i)<13 & NEDAT(i)>0 & NADAT(i)>0 then lengtha(i)=NEDAT(i)-NADAT(i);
if 0<NATTD(i)<13 & NADAT(i)<=NEDAT(i)<=NADAT(i+1) & lengtha(i)>13
& NATTD(i+1)-NATTD(i)=1 & REPEAT~=-3 then do;
REPEAT=REPEAT+1;
if i=1 & NADAT(i)<PRbfint then oldstrt=1;
if NEDAT(i)<=282 then REPEATj=REPEATj+1;
end;
else if 0<NATTD(i)<13 & NADAT(i)<=NEDAT(i) & NATTD(i+1)=. & lengtha(i)>13
& REPEAT~=-3 & (ISCOM(i)=1|e2857r8=NATTD(i)) then do;
REPEAT=REPEAT+1;
if i=1 & NADAT(i)<PRbfint then oldstrt=1;
if NEDAT(i)<=282 then REPEATj=REPEATj+1;
end;
else if 0<NATTD(i)<13 & NADAT(i)<=NEDAT(i) & NATTD(i+1)=. & lengtha(i)>13
& REPEAT~=-3 & (ISCOM(i)=0 & e2857r8~=NATTD(i)) then do;
if i=1 & NADAT(i)<PRbfint then oldstrt=1;
REPEAT=-3;
REPEATj=-3;
reason=1;
end;
end;


do i=1 to (GRA-2);
if 0<NATTD(i)<13 & NADAT(i)<NEDAT(i)<NADAT(i+1)<NEDAT(i+1) then do;
if NADAT(i) in (212,213,224,225,236,237,248,249,260,261,272,273,284,285,296,297)
& NADAT(i)~=PRbfint & NATTD(i+1)-NATTD(i)=1 & ISCOM(i+1)=1
& NEDAT(i+1)-NADAT(i)<=12 & NADAT(i+2)-NEDAT(i+1)<=9 then do;
if (i=1|(i~=1 & NADAT(i)-NEDAT(i-1)<=9)) & skipleng~=-3 then do;
skipleng=skipleng+1;
if NEDAT(i+1)<=294 & skipl_j~=-3 then skipl_j=skipl_j+1;
end;
end;
end;
end;


** Take care of connection between previous round and current round;

connect=0;
if 0<NATTD1<13 & lphigh>0 & NATTD1~=lphigh then do;
if NATTD1-lphigh>1 then connect=1;
if lphighst in (212,213,224,225,236,237,248,249,260,261,272,273,284,285,296,297)
& NEDAT1>=lphighst & NEDAT1-lphighst<=12 then connect=2;
end;
else if 0<NATTD1<13 & lphigh>0 & NATTD1=lphigh & ISCOM1=1 & lphighcp~=1
& PRbfst(lpnum-1)>0 then do;
if PRbfst(lpnum-1) in (212,213,224,225,236,237,248,249,260,261,272,273,284,285,296,297)
& NEDAT1>=PRbfst(lpnum-1) & NEDAT1-PRbfst(lpnum-1)<=12 then connect=3;
end;

** Check for respondents who completely skip (do not attend) a grade;

skipgr=0;
skipgrj=0;
skipgt2=0;

do i=1 to (GRA-1);
if 0<NATTD(i)<13 & NATTD(i+1)-NATTD(i)=2 & NEDAT(i)>0 & NADAT(i+1)>0
& NADAT(i+1)-NEDAT(i)<=9 & skipgr~=-3 then do;
skipgr=skipgr+1;
if NEDAT(i+1)<=282 then skipgrj=skipgrj+1;
end;
else if 0<NATTD(i)<13 & NATTD(i+1)-NATTD(i)=3 & NEDAT(i)>0 & NADAT(i+1)>0
& NADAT(i+1)-NEDAT(i)<=9 then do;
skipgr=skipgr+2;
if NEDAT(i+1)<=282 then skipgrj=skipgrj+2;
end;
else if 0<NATTD(i)<13 & NATTD(i+1)-NATTD(i)>3 & NEDAT(i)>0 & NADAT(i+1)>0
& NADAT(i+1)-NEDAT(i)<=9 then do;
skipgt2=1;
end;
end;


** Set REPEAT and SKIP to -3 if allmess=1 or backrep>0 or jumprep=1 or zerograd=1 or negdate=1;
allmess=0;
do i=1 to (GRA-1);
if 0<NATTD(i)<13 & (
(NADAT(i)>NEDAT(i) & NEDAT(i)>0)
|(NEDAT(i)>NADAT(i+1) & NADAT(i+1)>0)
|(NADAT(i+1)>NEDAT(i+1) & NEDAT(i+1)>0)
) then do;
allmess=1;
end;
end;

zerograd=0;
do i=1 to GRA;
if NATTD(i)=0 then zerogrd=1;
end;

negdate=0;
do i=1 to dim(attd);
if 0<NATTD(i)<13 & (NEDAT(i) in (-1,-2,-3)|NADAT(i) in (-1,-2,-3)) then negdate=1;
end;

if allmess=1|backrep>0|zerograd=1|jumprep1=1|jumprep2=1|negdate=1 then do;
REPEAT=-3;
REPEATj=-3;
SKIP=-3;
SKIPj=-3;
end;

if allmess=1 then reason=2.1;
if backrep>0 then reason=2.2;
if zerograd=1 then reason=2.3;
if jumprep1=1 then reason=2.4;
if jumprep2=1 then reason=2.5;
if negdate=1 then reason=2.6;

** Flag respondents who reported skipping a grade and those who say they did not skip grade;

array whyskip (*) e8977r8: e9793r8:;

skipques=0;
do i=1 to dim(whyskip);
if whyskip(i)=1 then skipques=1;
end;

notskip=0;
do i=1 to dim(whyskip);
if whyskip(i) in (-1,-2,2,999) then notskip=1;
end;

double=0;
if skipgr>0 & skipleng>0 then double=1;

if SKIP~=-3 then do;
if (skipques=0 & skipleng=0 & skipgr=0)|(notskip>=1 & skipques=0) then SKIP=0;
else if skipleng=-3 & (skipgr=0|skipques=0) then do;
SKIP=-3;
reason=3;
end;
else if skipgr=-3 & skipleng=0 then do;
SKIP=-3;
reason=4;
end;
else if skipleng>=1 then SKIP=skipleng;
else if skipques>=1 & skipgr>=1 then SKIP=skipgr;

else if skipques>=1 & skipgr=0 then do;
SKIP=-3;
reason=5;
end;
else if skipques=0 & skipgr>=1 then do;
SKIP=-3;
reason=6;
end;
if skipques=-3|skipgr=-3|skipleng=-3 then do;
SKIP=-3;
reason=7;
end;
end;

if SKIPj~=-3 then do;
if (skipl_j=0 & skipgrj=0)|(notskip>=1 & skipques=0) then SKIPj=0;
else if skipl_j=-3 & (skipgrj=0|skipques=0) then do;
SKIP=-3;
reason=8;
end;
else if skipgrj=-3 & skipl_j=0 then do;
SKIPj=-3;
reason=9;
end;
else if skipl_j>=1 then SKIPj=skipl_j;
else if skipques>=1 & skipgrj>=1 then SKIPj=skipgrj;

else if skipques>=1 & skipgrj=0 then do;
SKIPj=-3;
reason=10;
end;
else if skipques=0 & skipgrj>=1 then do;
SKIPj=-3;
reason=11;
end;
if SKIP=-3 then do;
SKIPj=-3;
reason=12;
end;
end;

** Take care of the cases whose "repeated grade" could be double counted;

if oldstrt=1 & REPEAT>0 & PRbfrpev>0 & PRbf2857~=-5 then do;
do i=1 to (GRA-1);
if 0<NATTD1<13 & PRbfat(i)=NATTD1 & PRbfat(i+1)=. & (PRbfed(i)-PRbfst(i))>13 &
(PRbfcp(i)=1|PRbf2857=PRbfat(i)) then do;
REPEAT=REPEAT-1;
if NEDAT1<=282 then REPEATj=REPEATj-1;
double_repeat=1;
end;
end;
end;


* Combine previous and current round information.;
if PRbfrpev>=0 & REPEAT>=0 then NUMREP=PRbfrpev+REPEAT;
else if PRbfrpev<0 then NUMREP=PRbfrpev;
else if PRbfrpev>=0 & REPEAT<0 then NUMREP=REPEAT;

if PRbfrpev>=0 & REPEATj>=0 then NUMREPj=PRbfrpev+REPEATj;
else if PRbfrpev<0 then NUMREPj=PRbfrpev;
else if PRbfrpev>=0 & REPEATj<0 then NUMREPj=REPEATj;

if PRbfskev>=0 & SKIP>=0 then NUMSKIP=PRbfskev+SKIP;
else if PRbfskev<0 then NUMSKIP=PRbfskev;
else if PRbfskev>=0 & SKIP<0 then NUMSKIP=SKIP;

if PRbfskev>=0 & SKIP>=0 then NUMSKIPj=PRbfskev+SKIPj;
else if PRbfskev<0 then NUMSKIPj=PRbfskev;
else if PRbfskev>=0 & SKIPj<0 then NUMSKIPj=SKIPj;

if NUMREP in (-1,-2) then NUMREP=-3;
if NUMREPj in (-1,-2) then NUMREPj=-3;
if NUMSKIP in (-1,-2) then NUMSKIP=-3;
if NUMSKIPj in (-1,-2) then NUMSKIPj=-3;

if NUMREPr1=-4 then do;
NUMSKIP=-4;
NUMREP=-4;
NUMSKIPj=-4;
NUMREPj=-4;
end;

dontbother=1;
if NUMREP not in (-3,-4) & NUMSKIP not in (-3,-4)
& PRbfrpev not in (-3,-4) & PRbfskev not in (-3,-4) then dontbother=0;

if e3104r8=-5 then do;
NUMSKIP=-5;
NUMREP=-5;
NUMSKIPj=-5;
NUMREPj=-5;
end;

***** GENERATE THE FINAL DATA SET;

** For single variables;
CRbfrpev=NUMREP;
if e3104r8=-5 then CRbfrpev=PRbfrpev;

CRbfskev=NUMSKIP;
if e3104r8=-5 then CRbfskev=PRbfskev;

CRbf2857=e2857r8;
if e3104r8=-5 then CRbf2857=PRbf2857;

CRbfint=doicm;
if e3104r8=-5 then CRbfint=PRbfint;

** For array variables;
array alattd (*) PRbfat1-PRbfat15 NATTD1-NATTD9;
array alstdt (*) PRbfst1-PRbfst15 NADAT1-NADAT9;
array aleddt (*) PRbfed1-PRbfed15 NEDAT1-NEDAT9;
array alcomp (*) PRbfcp1-PRbfcp15 ISCOM1-ISCOM9;

array CRbfat (*) CRbfat1-CRbfat15;
array CRbfst (*) CRbfst1-CRbfst15;
array CRbfed (*) CRbfed1-CRbfed15;
array CRbfcp (*) CRbfcp1-CRbfcp15;

array PRtpat (*) PRtpat1-PRtpat15;
array PRtpst (*) PRtpst1-PRtpst15;
array PRtped (*) PRtped1-PRtped15;
array PRtpcp (*) PRtpcp1-PRtpcp15;

GRC=(GRA+GRB);
j=0;
do i=1 to GRC;
if alattd[i] not in (-4, -5, .) then do;
j=j+1;
CRbfat[j]=alattd[i];
CRbfst[j]=alstdt[i];
CRbfed[j]=aleddt[i];
CRbfcp[j]=alcomp[i];
end;
end;

do i=1 to GRB;
PRtpat[i]=CRbfat[i];
PRtpst[i]=CRbfst[i];
PRtped[i]=CRbfed[i];
PRtpcp[i]=CRbfcp[i];
end;

** If two grades are same with the same start date, we delete the info. with earlier stopping date;
** We also delete the 0 grade info;

cut=0;
numcut=0;
samegrd=0;
do i=1 to (GRB-1);
if (0<PRtpat[i]<13 & PRtpat[i]=PRtpat[i+1] & PRtpst[i]=PRtpst[i+1] & PRtped[i]<=PRtped[i+1]
& (PRtpst[i]~=-3|PRtpst[i+1]~=-3))|PRtpat[i]=0 then do;
cut=1;
cut=1;
numcut=numcut+1;
do k=i+1-numcut to GRB-numcut;
CRbfat[k]=CRbfat[k+1];
CRbfst[k]=CRbfst[k+1];
CRbfed[k]=CRbfed[k+1];
CRbfcp[k]=CRbfcp[k+1];
end;
end;
else if 0<PRtpat[i]<13 & PRtpat[i]=PRtpat[i+1] & PRtpst[i]=PRtpst[i+1] & PRtped[i]>=PRtped[i+1]
& (PRtpst[i]~=-3|PRtpst[i+1]~=-3) then do;
cut=2;
numcut=numcut+1;
do k=i+2-numcut to GRB-numcut;
CRbfat[k]=CRbfat[k+1];
CRbfst[k]=CRbfst[k+1];
CRbfed[k]=CRbfed[k+1];
CRbfcp[k]=CRbfcp[k+1];
end;
end;
else if 0<PRtpat[i]<13 & PRtpat[i]=PRtpat[i+1] & PRtpst[i]~=PRtpst[i+1] then samegrd=1;
end;

** Flag the special cases;
strtneg=0; endneg=0;
do i=1 to GRB;
if 0<CRbfat[i]<13 & CRbfst[i]=-3 then strtneg=1;
if 0<CRbfat[i]<13 & CRbfed[i]=-3 then endneg=1;
if 12<CRbfat[i]<95 then clg=1;
end;

neg3or4=0;
if (CRbfrpev in (-1,-2,-3) & CRbfskev in (-1,-2,-3))|(CRbfrpev=-4 & CRbfskev=-4) then neg3or4=1;

gapbteq=0;
do i=1 to (GRB-2);
do k=i+2 to GRB;
if 0<CRbfat[i]<13 & CRbfat[i]=CRbfat[k] then gapbteq=1;
end;
end;

gapbteqPR=0;
do i=1 to (GRB-2);
do k=i+2 to GRB;
if 0<alattd[i]<13 & alattd[i]=alattd[k] then gapbteqPR=1;
end;
end;

gapbteqCR=0;
do i=(GRB+1) to (GRC-2);
do j=i+2 to GRC;
if 0<alattd(i)<13 & alattd(i)=alattd(j) then gapbteqCR=1;
end;
end;

strtmis=0; endmis=0;
do i=1 to GRB;
if 0<CRbfat[i]<13 & CRbfst[i] in (-4,.) then strtmis=1;
if 0<CRbfat[i]<13 & CRbfed[i] in (-4,.) then endmis=1;
end;

array vars8 r8bfrpev r8bfskev r8bf2857 r8bfint
r8bfat1-r8bfat15 r8bfat1-r8bfat15
r8bfst1-r8bfst15 r8bfst1-r8bfst15
r8bfed1-r8bfed15 r8bfed1-r8bfed15
r8bfcp1-r8bfcp15 r8bfcp1-r8bfcp15;
array varsC CRbfrpev CRbfskev CRbf2857 CRbfint
CRbfat1-CRbfat15 CRbfat1-CRbfat15
CRbfst1-CRbfst15 CRbfst1-CRbfst15
CRbfed1-CRbfed15 CRbfed1-CRbfed15
CRbfcp1-CRbfcp15 CRbfcp1-CRbfcp15;
do over varsC;
vars8=varsC;
end;


ENDSAS;


Return to top

Number of Schools Attended

Variables Created:

Variables Used

Name in Program Question Name on CD   Name in Program Question Name on CD
CURGDR1 YSCH_3500_1997   S9589113 YSCH-9589.01.01.03
HGAR2 YSCH_2857_1998   S9589114 YSCH-9589.01.01.04
HGAR3 YSCH_2857_1999   S9589211 YSCH-9589.02.01.01
HGAR4 YSCH_2857_2000   S9589212 YSCH-9589.02.01.02
HGAR5 YSCH_2857_2001   S9589213 YSCH-9589.02.01.03
HGAR6 YSCH_2857_2002   schint1 NEWSCHOOL_INTERVIEW.01
HGAR7 YSCH_2857_2003   schint2 NEWSCHOOL_INTERVIEW.02
HGAR8 YSCH_2857_2004   schint3 NEWSCHOOL_INTERVIEW.03
NUMR1 CV_SCH_ATTEND_EVER_1997   schint4 NEWSCHOOL_INTERVIEW.04
NUMR2 CV_SCH_ATTEND_EVER_1998   schint5 NEWSCHOOL_INTERVIEW.05
NUMR3 CV_SCH_ATTEND_EVER_1999   schint6 NEWSCHOOL_INTERVIEW.06
NUMR4 CV_SCH_ATTEND_EVER_2000   SCHID1 NEWSCHOOL_PUBID.01
NUMR5 CV_SCH_ATTEND_EVER_2001   SCHID2 NEWSCHOOL_PUBID.02
NUMR6 CV_SCH_ATTEND_EVER_2002   SCHID3 NEWSCHOOL_PUBID.03
NUMR7 CV_SCH_ATTEND_EVER_2003   SCHID4 NEWSCHOOL_PUBID.04
S826311 YSCH-8263.01.01   SCHID5 NEWSCHOOL_PUBID.05
S826312 YSCH-8263.01.02   START1M NEWSCHOOL_START1.01~M
S826321 YSCH-8263.02.01   START1Y NEWSCHOOL_START1.01~Y
S826322 YSCH-8263.02.02   START2M NEWSCHOOL_START1.02~M
S826331 YSCH-8263.03.01   START2Y NEWSCHOOL_START1.02~Y
S841611 YSCH-8416.01.01   START3M NEWSCHOOL_START1.03~M
S841612 YSCH-8416.01.02   START3Y NEWSCHOOL_START1.03~Y
S841621 YSCH-8416.02.01   START4M NEWSCHOOL_START1.04~M
S841622 YSCH-8416.02.02   START4Y NEWSCHOOL_START1.04~Y
S841631 YSCH-8416.03.01   START5M NEWSCHOOL_START1.05~M
S9589111 YSCH-9589.01.01.01   START5Y NEWSCHOOL_START1.05~Y
S9589112 YSCH-9589.01.01.02   SYMGRD SYMBOL!CUR!FIRSTGRADE

 This program is used to count the number of regular schools that the youth ever attended as of the survey date and as of June 30, 2004.


/*The program first count the number of new regular schools that the youth attended since DLI
to the date of survey (June 30, 2004) by the first enrollment date in each new school, then
add this number to the created variable in round 7 or round 6 ( if the person is not inter-
-viewed in round 7) and get the total number of regular schools
that the youth have ever attended to the required date.

When we count the new schools, since we only count the schools form the youth's 7th grade
through his(her) 12th grade, so we need to check if they do go to these grade in the new
school before we count it.

If a respondent did not have a parent interview in R1, we lack information on the number of schools
attended prior to R1 (if they were enr in a grade>7 in R1). Those respondents receive a -4 in R1
and a -4 in all subsequent rounds for the CVs. */

ARRAY STARTM START1M START2M START3M START4M START5M ;
ARRAY STARTY START1Y START2Y START3Y START4Y START5Y ;
ARRAY START START1-START5;
ARRAY schint schint1-schint5;
ARRAY SCHID SCHID1-SCHID5;
ARRAY DUMGRD DUMGRD1-DUMGRD5;
ARRAY AGAIN AGAIN1-AGAIN5;

/*First, create the dummy variable for each school to indicate if the youth attended grade 7
through grade 12 in that school.
NOTE: The order to give dummies is very important here, That is, we should give dummy=-3 first,
then give dummy=1, this way, we won't miss the school as long as one the grades the kids attend in
that school is between 7 and 12.
DUMGRD1-DUMGRD5= dummy to indicate whether R attended grades 7-12 in schools 1-5
AGAIN1-AGAIN6=dummy to indicate whether school 1-6 is the same school as one already recorded, to avoid
overcounts
STARTM/Y=start date for a given school*/


DO I=1 TO 5;
DUMGRD[I]=0;
START[I]=-4;
END;

/* R8 reads-in a grade from the prior schint, but no special treatment is necessary */

IF (-3<=S841611<=-1 OR -3<=S9589111<=-1 OR -3<=S9589112<=-1 OR -3<=S9589113<=-1 )
OR (-3<=S841612<=-1 ) THEN DUMGRD1=-3;
IF (-3<=S841621<=-1 OR -3<=S9589211<=-1 OR -3<=S9589212<=-1 OR -3<=S9589213<=-1 )
THEN DUMGRD2=-3;
IF (-3<=S841631<=-1 or -3<=S9589311<=-1 OR -3<=S9589312<=-1 OR -3<=S9589313<=-1 )
THEN DUMGRD3=-3;
IF (-3<=S841641<=-1) then DUMGRD4=-3;
IF (-3<=S841651 <=-1 or -3<=S9589511<=-1 )then DUMGRD5=-3;

IF (7<=S841611<=12 OR 7<=S9589111<=12 OR 7<=S9589112<=12 OR 7<=S9589113<=12 )
OR (7<=S841612<=12 ) THEN DUMGRD1=1;
IF (7<=S841621<=12 OR 7<=S9589211<=12 OR 7<=S9589212<=12 OR 7<=S9589213<=12 )
THEN DUMGRD2=1;
IF (7<=S841631<=12 or 7<=S9589311<=12 OR 7<=S9589312<=12 OR 7<=S9589313<=12 )
THEN DUMGRD3=1;
IF (7<=S841641<=12) then DUMGRD4=1;
IF (7<=S841651 <=12 or 7<=S9589511<=12 )then DUMGRD5=1;


/*Create a flag (again 1-5) for schools that are reported more than once for a grade 7-12 in the
same round, using pubid for the school. This will be used to avoid double counting schools.*/

do i=1 to 5;
again(i)=0;
end;

do i=1 to 5;

if i>=5 and schid(i)>0 and dumgrd(i)=1 and dumgrd(i-4)=1 and schid(i)=schid(i-4) then again(i)=1;
if i>=4 and schid(i)>0 and dumgrd(i)=1 and dumgrd(i-3)=1 and schid(i)=schid(i-3) then again(i)=1;
if i>=3 and schid(i)>0 and dumgrd(i)=1 and dumgrd(i-2)=1 and schid(i)=schid(i-2) then again(i)=1;
if i>=2 and schid(i)>0 and dumgrd(i)=1 and dumgrd(i-1)=1 and schid(i)=schid(i-1) then again(i)=1;
end;


array startdm startdm1-startdm5;
do i=1 to 5;
if starty[i]>0 or starty[i] in (-1,-2,-3) then startdm[i]=1;
else startdm[i]=0;
end;



/*Next, calculate NUMJR8 and NUMR8.*/

/* Calculate the accumulated month of the start date. */
DO I=1 TO 5;
IF STARTY[I]>0 AND STARTM[I]>0 THEN START[I]=12*(STARTY[I]-1990)+STARTM[I];
END;

prenum=0;
if NUMR7>0 then prenum= NUMR7;

else if NUMR7 in (-4, -5) and NUMR6>0 then prenum= NUMR6;
else if NUMR7 in (-4, -5) and NUMR6 in (-4, -5) and NUMR5>0 then prenum= NUMR5;
else if NUMR7 in (-4, -5) and NUMR6 in (-4, -5) and NUMR5 in (-4, -5) and NUMR4>0 then prenum= NUMR4;
else if NUMR7 in (-4, -5) and NUMR6 in (-4, -5) and NUMR5 in (-4, -5) and NUMR4 in (-4, -5) and NUMR3>0 then prenum= NUMR3;
else if NUMR7 in (-4, -5) and NUMR6 in (-4, -5) and NUMR5 in (-4, -5) and NUMR4 in (-4, -5)
and NUMR3 in (-4, -5) and NUMR2>0 then prenum= NUMR2;
else if NUMR7 in (-4, -5) and NUMR6 in (-4, -5) and NUMR5 in (-4, -5) and NUMR4 in (-4, -5)
and NUMR3 in (-4, -5) and NUMR2 in (-4, -5) and NUMR1>0 then prenum= NUMR1;




NUMJR8=0;
NUMR8=0;
/**** count the new schools for all the cases.*****/
DO I=1 TO 5;
IF schint[I]=8 and again(i)=0 THEN DO;
IF DUMGRD[I]=1 THEN NUMR8=numR8+1;
IF DUMGRD[I]=1 AND (0<START[I]<=174 OR 0<STARTY[I]<2004) THEN NUMJR8=numJR8+1;
END;
END;


if -3<=schint1<=-1 or -3<=schint2<=-1 or -3<=schint3<=-1 or -3<=schint4<=-1
or -3<=schint5<=-1 then do;
numr8=-3;
numjr8=-3;
end;



/**** If the respondent is not interviewed in Round 7 and has no number of schools info. in
previous schints, or if number of school info. in round 6 is in (0,-4), then count all the schools.
That is, for these people, the above count will be overwritten.****/

flagprev=0;
flagprev=0;

if (numr7=-5 and numr6 in (0,-4,-5) and numr5 in (0,-4,-5) and numr4 in (0,-4,-5) and
numr3 in (0,-4,-5) and numr2 in (0,-4,-5) and numr1 in (0,-4)) then do;
numr8=0;
numjr8=0;
flagprev=1;


do i=1 to 5;
IF DUMGRD[I]=1 and again(i)=0 THEN NUMR8=NUMR8+1;
IF DUMGRD[I]=1 and again(i)=0 AND (0<START[I]<=174 OR 0<STARTY[I]<2004
or (schint[i] in (1,2,3,4,5,6,7) and
again(i)=0)) THEN NUMJR8=NUMJR8+1;
end;
end;


IF DUMGRD1=-3 OR DUMGRD2=-3 OR DUMGRD3=-3 OR DUMGRD4=-3 OR DUMGRD5=-3 THEN DO;
NUMR8=-3;
NUMJR8=-3;
END;
/* if school are rported in round 8*/
IF (schint1=8 AND AGAIN1 =0 AND DUMGRD1=1 AND ((START1Y=2004 AND -4<START1M<0) OR -4<START1Y<0)) OR
(schint2=8 AND AGAIN2 =0 AND DUMGRD2=1 AND ((START2Y=2004 AND -4<START2M<0) OR -4<START2Y<0)) OR
(schint3=8 AND AGAIN3 =0 AND DUMGRD3=1 AND ((START3Y=2004 AND -4<START3M<0) OR -4<START3Y<0)) OR
(schint4=8 AND AGAIN4 =0 AND DUMGRD4=1 AND ((START4Y=2004 AND -4<START4M<0) OR -4<START4Y<0)) OR
(schint5=8 AND AGAIN5 =0 AND DUMGRD5=1 AND ((START5Y=2004 AND -4<START5M<0) OR -4<START5Y<0))

THEN NUMJR8=-3;


/*We then add the above two numbers to the correponding variables from round 1 to round 7.*/
IF NUMJR8>=0 then NUMJ=NUMJR8+prenum;
IF NUMR8>=0 THEN NUMS=NUMR8+prenum;



/*For the youth who didn't answer the number of schools in round 1, we distinguish them into
three cases
1)If the 'grade currently attended' in round 1 is <=7 and the 'highest grade attended'
in round 8 >= 7, we use the number from round 8 as the total number.
2)If the 'grade currently attended' in round 1 >7, we use -4 for the total number.
3)If both the 'grade currently attended'
in round 1 and the 'highest grade attended' in round 8 are <7, we use -4 for the total number.*/

IF NUMR1 in (0,-4)and numr7=-5 and numr6=-5 and numr5=-5 and numr4=-5 and numr3=-5 and numr2=-5 THEN DO;
IF CURGDR1<=7 THEN DO;
NUMJ=NUMJR8;
NUMS=NUMR8;
END;

IF CURGDR1>7 or NUMR1 in (-1,-2,-3) THEN DO;
NUMJ=-3;
NUMS=-3;
END;

IF CURGDR1<7 AND HGAR8<7 THEN DO;
NUMJ=-4;
NUMS=-4;
END;
END;

IF NUMR1 in (-4,0) and CURGDR1>7 then do;
nums=-4;
numj=-4;
end;

IF -3<=NUMR1<=-1 OR -3<=NUMR2<=-1 OR NUMR3=-3 OR NUMR4=-3 OR NUMR5=-3 OR NUMR6=-3
or NUMR7=-3 or NUMJR8=-3 THEN NUMJ=-3;

IF -3<=NUMR1<=-1 OR -3<=NUMR2<=-1 OR NUMR3=-3 OR NUMR4=-3 OR NUMR5=-3 OR NUMR6=-3
or NUMR7=-3 or NUMR8=-3 THEN NUMS=-3;

if HGAR8<7 then do;
numj=-4;
nums=-4;
end;


if nums<numR7 and numR7 ne -5 and int_y ne -5 and nums ne -3 then flagcheck=1;
if flagcheck=1 then do;
nums=prenum;
numj=prenum;
end;



if int_y=-5 THEN DO;
NUMJR8=-5;
NUMR8=-5;
NUMJ=-5;
NUMS=-5;
END;


if pubid=1398 then do;
NUMJR8=-5;
NUMR8=-5;
NUMJ=-5;
NUMS=-5;
END;


endsas;


Return to top


Total Fraction of Credits Earned towards Bachelors/Associate Degree

Variables Created: 

Variables Used

Name in Program

Question Name on CD

 

Name in Program

Question Name on CD

 

Name in Program

Question Name on CD

Round 1     Round 4 cont'd     Round 7 cont'd  
asctr1_1 CV_ASSOC_CREDITS   bactr4_1 CV_BA_CREDITS.01   asctr7_3 CV_ASSOC_CREDITS.03
bactr1_1 CV_BA_CREDITS   bactr4_2 CV_BA_CREDITS.02   asctr7_4 CV_ASSOC_CREDITS.04
      bactr4_3 CV_BA_CREDITS.03   bactr7_1 CV_BA_CREDITS.01
Round 2     bactr4_4 CV_BA_CREDITS.04   bactr7_2 CV_BA_CREDITS.02
e27388r2_1 YSCH-27388.01         bactr7_3 CV_BA_CREDITS.03
e27388r2_2 YSCH-27388.02   Round 5     bactr7_4 CV_BA_CREDITS.04
e27388r2_3 YSCH-27388.03   e27388r5_1 YSCH-27388.01   bactr7_5 CV_BA_CREDITS.05
e27388r2_4 YSCH-27388.04   e27388r5_2 YSCH-27388.02      
e27388r2_5 YSCH-27388.05   e27388r5_3 YSCH-27388.03   Round 8  
schidr2_1 NEWSCHOOL_PUBID.01   e27388r5_4 YSCH-27388.04   e27337.01 YSCH-27337.01
schidr2_2 NEWSCHOOL_PUBID.02   e27388r5_5 YSCH-27388.05   e27337.02 YSCH-27337.02
schidr2_3 NEWSCHOOL_PUBID.03   e27388r5_6 YSCH-27388.06   e27337.03 YSCH-27337.03
schidr2_4 NEWSCHOOL_PUBID.04   schidr5__1 NEWSCHOOL_PUBID.01   e27337.04 YSCH-27337.04
schidr2_5 NEWSCHOOL_PUBID.05   schidr5__2 NEWSCHOOL_PUBID.02   e27337.05 YSCH-27337.05
schidr2_6 NEWSCHOOL_PUBID.06   schidr5__3 NEWSCHOOL_PUBID.03   e25297.01 YSCH-25297.01
asctr2_1 CV_ASSOC_CREDITS.01   schidr5__4 NEWSCHOOL_PUBID.04   e25297.02 YSCH-25297.02
asctr2_2 CV_ASSOC_CREDITS.02   schidr5__5 NEWSCHOOL_PUBID.05   e25297.03 YSCH-25297.03
asctr2_3 CV_ASSOC_CREDITS.03   schidr5__6 NEWSCHOOL_PUBID.06   e25297.04 YSCH-25297.04
asctr2_4 CV_ASSOC_CREDITS.04   asctr5_1 CV_ASSOC_CREDITS.01   e25654.01 YSCH-25654.01
asctr2_5 CV_ASSOC_CREDITS.05   asctr5_2 CV_ASSOC_CREDITS.02   e16200.01 YSCH-16200.01
bactr2_1 CV_BA_CREDITS.01   asctr5_3 CV_ASSOC_CREDITS.03   e26931.01 YSCH-26931.01
bactr2_2 CV_BA_CREDITS.02   asctr5_4 CV_ASSOC_CREDITS.04   e26931.02  YSCH-26931.02
bactr2_3 CV_BA_CREDITS.03   asctr5_5 CV_ASSOC_CREDITS.05   e26931.03 YSCH-26931.03
bactr2_4 CV_BA_CREDITS.04   asctr5_6 CV_ASSOC_CREDITS.06   e26931.04  YSCH-26931.04
bactr2_5 CV_BA_CREDITS.05   bactr5_1 CV_BA_CREDITS.01   e26932.01 YSCH-26932.01
      bactr5_2 CV_BA_CREDITS.02   e26932.02  YSCH-26932.02
Round 3     bactr5_3 CV_BA_CREDITS.03   e26932.03  YSCH-26932.03
e27388r3_1 YSCH-27388.01   bactr5_4 CV_BA_CREDITS.04   e26932.04  YSCH-26932.04
e27388r3_2 YSCH-27388.02   bactr5_5 CV_BA_CREDITS.05   e26940.01 YSCH-26940.01
e27388r3_3 YSCH-27388.03   bactr5_6 CV_BA_CREDITS.06   e26940.02  YSCH-26940.02
e27388r3_4 YSCH-27388.04         e26940.03  YSCH-26940.03
e27388r3_5 YSCH-27388.05   Round 6     e26940.04 YSCH-26940.04
schidr3_1 NEWSCHOOL_PUBID.01   e27388r6_1 YSCH-27388.01   e26945.01 YSCH-26945.01
schidr3_2 NEWSCHOOL_PUBID.02   e27388r6_2 YSCH-27388.02   e26945.02  YSCH-26945.02
schidr3_3 NEWSCHOOL_PUBID.03   e27388r6_3 YSCH-27388.03   e26945.03  YSCH-26945.03
schidr3_4 NEWSCHOOL_PUBID.04   e27388r6_4 YSCH-27388.04   e27388.01  YSCH-27388.01
schidr3_5 NEWSCHOOL_PUBID.05   e27388r6_5 YSCH-27388.05   e27388.02 YSCH-27388.02
schidr3_6 NEWSCHOOL_PUBID.06   schidr6_1 NEWSCHOOL_PUBID.01   e27388.03  YSCH-27388.03
schidr3_7 NEWSCHOOL_PUBID.07   schidr6_2 NEWSCHOOL_PUBID.02   e27388.04 YSCH-27388.04
asctr3_1 CV_ASSOC_CREDITS.01   schidr6_3 NEWSCHOOL_PUBID.03   e22800.01 YSCH-22800.01
asctr3_2 CV_ASSOC_CREDITS.02   schidr6_4 NEWSCHOOL_PUBID.04   e22800.02 YSCH-22800.02
asctr3_3 CV_ASSOC_CREDITS.03   asctr6_1 CV_ASSOC_CREDITS.01   e22800.03  YSCH-22800.03
asctr3_5 CV_ASSOC_CREDITS.05   asctr6_2 CV_ASSOC_CREDITS.02   e22800.04 YSCH-22800.04
bactr3_1 CV_BA_CREDITS.01   asctr6_3 CV_ASSOC_CREDITS.03   e23000.01  YSCH-23000.01
bactr3_2 CV_BA_CREDITS.02   asctr6_4 CV_ASSOC_CREDITS.04   e23000.02 YSCH-23000.02
bactr3_3 CV_BA_CREDITS.03   bactr6_1 CV_BA_CREDITS.01   e23000.03  YSCH-23000.03
bactr3_4 CV_BA_CREDITS.04   bactr6_2 CV_BA_CREDITS.02   e23200.01 YSCH-23200.01
bactr3_5 CV_BA_CREDITS.05   bactr6_3 CV_BA_CREDITS.03   e23200.02 YSCH-23200.02
      bactr6_4 CV_BA_CREDITS.04   e23200.03  YSCH-23200.03
Round 4     bactr6_5 CV_BA_CREDITS.05   e23200.04 YSCH-23200.04
e27388r4_1 YSCH-27388.01         e23400.01 YSCH-23400.01
e27388r4_2 YSCH-27388.02   Round 7     e23400.02  YSCH-23400.02
e27388r4_3 YSCH-27388.03   e27388r7_1 YSCH-27388.01   e23400.03  YSCH-23400.03
e27388r4_4 YSCH-27388.04   e27388r7_2 YSCH-27388.02   pubid PUBID
schidr4_1 NEWSCHOOL_PUBID.01   e27388r7_3 YSCH-27388.03   scode1  NEWSCHOOL_SCHCODE.01
schidr4_2 NEWSCHOOL_PUBID.02   e27388r7_4 YSCH-27388.04   scode2 NEWSCHOOL_SCHCODE.02
schidr4_3 NEWSCHOOL_PUBID.03   e27388r7_5 YSCH-27388.05   scode3  NEWSCHOOL_SCHCODE.03
schidr4_4 NEWSCHOOL_PUBID.04   schidr7_1 NEWSCHOOL_PUBID.01   scode4  NEWSCHOOL_SCHCODE.04
schidr4_5 NEWSCHOOL_PUBID.05   schidr7_2 NEWSCHOOL_PUBID.02   scode5 NEWSCHOOL_SCHCODE.05
asctr4_1 CV_ASSOC_CREDITS.01   schidr7_3 NEWSCHOOL_PUBID.03   SCHID_1 NEWSCHOOL_PUBID.01
asctr4_2 CV_ASSOC_CREDITS.02   schidr7_4 NEWSCHOOL_PUBID.04   SCHID_2 NEWSCHOOL_PUBID.02
asctr4_3 CV_ASSOC_CREDITS.03   asctr7_1 CV_ASSOC_CREDITS.01   SCHID_3 NEWSCHOOL_PUBID.03
asctr4_4 CV_ASSOC_CREDITS.04   asctr7_2 CV_ASSOC_CREDITS.02   SCHID_4 NEWSCHOOL_PUBID.04
            SCHID_5 NEWSCHOOL_PUBID.05

This program calculates fraction of credits earned toward a bachelor's degree (CV_BA_CREDITS) and fraction of credits earned toward a associate's degree (CV_ASSOC_CREDITS) for round 8.


*** arrays for Rounds 1-7;

array asctr2 (*) asctr2_1-asctr2_6; * Fraction of credits earned for Round2;
array bactr2 (*) bactr2_1-bactr2_6; * Fraction of credits earned for Round2;
array asctr3 (*) asctr3_1-asctr3_6; * Fraction of credits earned for Round3;
array bactr3 (*) bactr3_1-bactr3_6; * Fraction of credits earned for Round3;
array asctr4 (*) asctr4_1-asctr4_6; * Fraction of credits earned for Round4;
array bactr4 (*) bactr4_1-bactr4_6; * Fraction of credits earned for Round4;
array asctr5 (*) asctr5_1-asctr5_6; * Fraction of credits earned for Round5;
array bactr5 (*) bactr5_1-bactr5_6; * Fraction of credits earned for Round5;
array asctr6 (*) asctr6_1-asctr6_6; * Fraction of credits earned for Round6;
array bactr6 (*) bactr6_1-bactr6_6; * Fraction of credits earned for Round6;
array asctr7 (*) asctr7_1-asctr7_6; * Fraction of credits earned for Round7;
array bactr7 (*) bactr7_1-bactr7_6; * Fraction of credits earned for Round7;


array e27388r2 (*) e27388r2_1-e27388r2_6; * Total credits needed for graduation, Round2;
array e27388r3 (*) e27388r3_1-e27388r3_6; * Total credits needed for graduation, Round3;
array e27388r4 (*) e27388r4_1-e27388r4_6; * Total credits needed for graduation, Round4;
array e27388r5 (*) e27388r5_1-e27388r5_6; * Total credits needed for graduation, Round5;
array e27388r6 (*) e27388r6_1-e27388r6_6; * Total credits needed for graduation, Round6;
array e27388r7 (*) e27388r7_1-e27388r7_6; * Total credits needed for graduation, Round7;


array tasctr2 (*) tasctr2_1-tasctr2_6; * Total credits (not fraction) earned with DLI schools, Round2;
array tbactr2 (*) tbactr2_1-tbactr2_6; * Total credits (not fraction) earned with DLI schools, Round2;
array tasctr3 (*) tasctr3_1-tasctr3_6; * Total credits (not fraction) earned with DLI schools, Round3;
array tbactr3 (*) tbactr3_1-tbactr3_6; * Total credits (not fraction) earned with DLI schools, Round3;
array tasctr4 (*) tasctr4_1-tasctr4_6; * Total credits (not fraction) earned with DLI schools, Round4;
array tbactr4 (*) tbactr4_1-tbactr4_6; * Total credits (not fraction) earned with DLI schools, Round4;
array tasctr5 (*) tasctr5_1-tasctr5_6; * Total credits (not fraction) earned with DLI schools, Round5;
array tbactr5 (*) tbactr5_1-tbactr5_6; * Total credits (not fraction) earned with DLI schools, Round5;
array tasctr6 (*) tasctr6_1-tasctr6_6; * Total credits (not fraction) earned with DLI schools, Round6;
array tbactr6 (*) tbactr6_1-tbactr6_6; * Total credits (not fraction) earned with DLI schools, Round6;
array tasctr7 (*) tasctr7_1-tasctr7_6; * Total credits (not fraction) earned with DLI schools, Round7;
array tbactr7 (*) tbactr7_1-tbactr7_6; * Total credits (not fraction) earned with DLI schools, Round7;


array schidr2 (6) schidr2_1-schidr2_6; * School public id for Round 2;
array schidr3 (6) schidr3_1-schidr3_6; * School public id for Round 3;
array schidr4 (6) schidr4_1-schidr4_6; * School public id for Round 4;
array schidr5 (6) schidr5_1-schidr5_6; * School public id for Round 5;
array schidr6 (6) schidr6_1-schidr6_6; * School public id for Round 6;
array schidr7 (6) schidr7_1-schidr7_6; * School public id for Round 7;


* Note: There are a maximum of five schools reported in Round 8.;

*** arrays for Round 8;

array e22800 (5) e228001-e228005; * Total no. of credits earned;
array e23000 (5) e230001-e230005; * (Corrected) Total no. of credits earned;
array e27337 (5) e273371-e273375; * What type of diploma working towards;
array e27388 (5) e273881-e273885; * Total credits required to earn the degree;
array e23200 (5) e232001-e232005; * 1(0): R needs more (does not need any more) credits to graduate;
array e23400 (5) e234001-e234005; * Total no. credits still needed to graduate (asked if e23200=1);
array e25297 (5) e252971-e252975; * CAPI chk: Is this a DLI school?;
array SCHID (5) SCHID_1-SCHID_5; * School public id for Round 7;
array scode (5) scode1-scode5; * School code - type of school or college;

array e26931 (*) e269311-e269315;
array e26932 (*) e269321-e269325;
array e26940 (*) e269401-e269405;
array e26945 (*) e269451-e269455;

array tcred (5) tcred1-tcred5; * Total credits (not fraction) earned;
array tbac (5) tbac1-tbac5; * Total credits (not fraction) earned towards BA degree;
array tasc (5) tasc1-tasc5; * Total credits (not fraction) earned towards assoc degree;
array noterm (5) noterm1-noterm5; * Attended but did not complete any term;
array tncred (5) tncred1-tncred5; * Sum of transfer, test and H.S. credits;
array flag (5) flag1-flag5; * When inconsistency in credits reported;
array crcred (5) crcred1-crcred5; * C.V. computed using current credits, case 1;
array incred (5) incred1-incred5; * C.V. computed using incoming credits, case 2;
array dlcred (5) dlcred1-dlcred5; * C.V. computed using DLI credits, case 3;
array errci (5) errci1-errci5; * Whether both crcred and incred are 1;
array errcd (5) errcd1-errcd5; * Whether both crcred and dlcred are 1;
array errdi (5) errdi1-errdi5; * Whether both dlcred and incred are 1;
array ovr (5) ovr1-ovr5; * Fraction of AA/BA Credits earned are greater than 100;
array same (5) same1-same5; * Identify the round R last attended current college.;

array dgchk (5) dgchk1-dgchk5; * Checks if school code showed R was in college but degree working
towards was skipped and R had already received GED or HS Diploma.;
array dtprb (5) dtprb1-dtprb5; * Checks if R reports needs more credits to graduate but when asked
how many more reports ZERO;
array dliprb (5) dliprb1-dliprb5; * If CAPI chk shows this is not a DLI school but it actually is.;
array ngrd (5) ngrd1-ngrd5; * Checks whether the computed fraction of credits needed to graduate
is 100 even though YSCH-23200=0. (YSCH-23200: Does this mean you
need no more credits to get the degree you're working toward?).;
array miss (5) miss1-miss5; * Checks whether created variables CVs are missing although R reports
attending a college;
array nfrct (5) nfrct1-nfrct5; * CVs are recalculated when CV>100 using the sum of total credits
and credits remaining in the denominator instead of total credits
required.;
array olfrct (5) olfrct1-olfrct5; * DLI CVs used if CVs this round>100 and no new term is completed.;
array nofrct (5) nofrct1-nofrct5; * Fraction of credits needed to graduate (YSCH-23400) is missing for
cases where CVs>100 and so cannot be recomputed. Are coded -3.;

array s (7,6) schidr1_1-schidr1_6 schidr2_1-schidr2_6 schidr3_1-schidr3_6
schidr4_1-schidr4_6 schidr5_1-schidr5_6 schidr6_1-schidr6_6 schidr7_1-schidr7_6;
array a (7,6) asctr1_1-asctr1_6 asctr2_1-asctr2_6 asctr3_1-asctr3_6
asctr4_1-asctr4_6 asctr5_1-asctr5_6 asctr6_1-asctr6_6 asctr7_1-asctr7_6;
array b (7,6) bactr1_1-bactr1_6 bactr2_1-bactr2_6 bactr3_1-bactr3_6
bactr4_1-bactr4_6 bactr5_1-bactr5_6 bactr6_1-bactr6_6 bactr7_1-bactr7_6;
array e (7,6) e27337r2_1-e27337r2_6 e27337r2_1-e27337r2_6 e27337r3_1-e27337r3_6
e27337r4_1-e27337r4_6 e27337r5_1-e27337r5_6 e27337r6_1-e27337r6_6 e27337r7_1-e27337r7_6;

* Identifying the college that R reported attending in this round is the same one that R attended in
some earlier round;

***** ATTENTION! Definition is given later!*****;
array r78m (6,5) r78m11-r78m15 r78m21-r78m25 r78m31-r78m35 r78m41-r78m45 r78m51-r78m55 r78m61-r78m65;
array r68m (6,5) r68m11-r68m15 r68m21-r68m25 r68m31-r68m35 r68m41-r68m45 r68m51-r68m55 r68m61-r68m65;
array r58m (6,5) r58m11-r58m15 r58m21-r58m25 r58m31-r58m35 r58m41-r58m45 r58m51-r58m55 r58m61-r58m65;
array r48m (6,5) r48m11-r48m15 r48m21-r48m25 r48m31-r48m35 r48m41-r48m45 r48m51-r48m55 r58m61-r58m65;
array r38m (6,5) r38m11-r38m15 r38m21-r38m25 r38m31-r38m35 r38m41-r38m45 r38m51-r38m55 r38m61-r38m65;
array r28m (6,5) r28m11-r28m15 r28m21-r28m25 r28m31-r28m35 r28m41-r28m45 r28m51-r28m55 r28m61-r28m65;
*****************************************;


array asfrac (5) asfrac1-asfrac5; * Created variable: fraction credits earned for associate credits;
array bafrac (5) bafrac1-bafrac5; * Created variable: fraction credits earned for bachelor credits;

** If a R completed at least one term, CAPI verifies the total credits for each school at YSCH-22800.
Due to a design err, the check question YSCH-22800 does not include Round 2 college credits even
when the SCHID's from both rounds match. However, if a R sees this incorrect count and tells us it is
correct, we will use it. Rs who have yet to complete a term at a given school will not be asked
YSCH-22800. The only credits possible for these people are incoming credits at YSCH-26521, or the DLI
Round created variable for a matching school.;

/*********************************************
There are 3 ways to compute credits in this program, which are all mutually exclusive:
Case 1: If the R completed any terms, we use YSCH-22800 or YSCH-23000.
Case 2: If the R has not completed any terms and reported a new school, then we use the incoming
credits (26932 OR 26945). For school #1 use YSCH-16200.
Case 3: If the R has not completed any terms and reported a dli school, then we use the total credit
from the dli round (through the SCHID match variable described below).
**********************************************/

** Check for people who attended college but were skipped out of YSCH-22800 and YSCH-23000 (because of
no completed terms).;
do i=1 to 5;
if e27337(i) in (1,3) and e22800(i)=-4 and e23000(i)=-4 then noterm(i)=1;
end;

** For people who did not complete any terms, the only data available is the incoming credits count
(that is CASE 2) and the created variable from their DLI round (that is CASE 3). These two pieces of
data are exclusive.;

if schidr2_1~=-5 then DLI=2;
if schidr3_1~=-5 then DLI=3;
if schidr4_1~=-5 then DLI=4;
if schidr5_1~=-5 then DLI=5;
if schidr6_1~=-5 then DLI=6;
if schidr7_1~=-5 then DLI=7;


do i=1 to 5;
if noterm(i)=1 then do;
if (bactr7(i)>0 or asctr7(i)>0) & DLI=7 then back7=1;
if (bactr6(i)>0 or asctr6(i)>0) & DLI=6 then back6=1;
if (bactr5(i)>0 or asctr5(i)>0) & DLI=5 then back5=1;
if (bactr4(i)>0 or asctr4(i)>0) & DLI=4 then back4=1;
if (bactr3(i)>0 or asctr3(i)>0) & DLI=3 then back3=1;
if (bactr2(i)>0 or asctr2(i)>0) & DLI=2 then back2=1;
end;
end;



** Check for cases where R says No to "Does this mean you need no more credits to get the degree you're
working toward?" but report ZERO credits for the follow-up question "How many more credits would you
need?";
do i=1 to 5;
if e23200(i)=0 & e23400(i)=0 then do;
dtprb(i)=1;
dataprb=1;
end;
end;




*** Case 1;
do i=1 to 5;
if e22800(i)>-4 then do;
tcred(i)=e22800(i);
crcred(i)=1;
end;
if e23000(i)>-4 then do;
tcred(i)=e23000(i);
crcred(i)=1;
end;
end;


*** Case 3: The last data source for credits are from previous rounds. Begin by matching current Round
colleges to DLI colleges using the schools' SCHID. Note that this is only used when there are no
completed terms in the current Round (and thus no answer to YSCH-22800) and this school is a dli
school .;

* Define r57m13 as the dummy variable that equals one when the 1st college on the Round5 school roster
and 3rd college on the Round7 roster have the same SCHID. Define r47m14 as the dummy variable that
equals one when the 1st college on the Round4 school roster and the 4th college on the Round7 roster
have the same SCHID. The "57" match variables require that R missed the Round 6 interview. Any college
from Round1 is represented in the "first" position in the Round 2 created variables i.e. ASFRAC1
(Round 2) is a school from Round 1.;


** If CAPI chk shows this is not a DLI school but it actually is.;
do i=1 to 5;
do j=1 to 6;
if e25297(i)=0 & SCHID(i)>=0 then do;
if SCHID(i)=schidr7(j) & DLI=7 then dliprb(i)=1;
if SCHID(i)=schidr6(j) & DLI=6 then dliprb(i)=1;
if SCHID(i)=schidr5(j) & DLI=5 then dliprb(i)=1;
if SCHID(i)=schidr4(j) & DLI=4 then dliprb(i)=1;
if SCHID(i)=schidr3(j) & DLI=3 then dliprb(i)=1;
if SCHID(i)=schidr2(j) & DLI=2 then dliprb(i)=1;
end;
end;
end;


** If any SCHID from the 1st position in Round 2/3/4/5/6/7 matches with any SCHID in Round8;
do i=1 to 6;
do j=1 to 5;
if schidr7(i)=SCHID(j) & DLI=7 & SCHID(j)>0 then do;
r78m(i,j)=1;
same(j)=7;
end;
if schidr6(i)=SCHID(j) & DLI=6 & SCHID(j)>0 then do;
r68m(i,j)=1;
same(j)=6;
end;
if schidr5(i)=SCHID(j) & DLI=5 & SCHID(j)>0 then do;
r58m(i,j)=1;
same(j)=5;
end;
if schidr4(i)=SCHID(j) & DLI=4 & SCHID(j)>0 then do;
r48m(i,j)=1;
same(j)=4;
end;
if schidr3(i)=SCHID(j) & DLI=3 & SCHID(j)>0 then do;
r38m(i,j)=1;
same(j)=3;
end;
if schidr2(i)=SCHID(j) & DLI=2 & SCHID(j)>0 then do;
r28m(i,j)=1;
same(j)=2;
end;
end;
end;


** We will accept dli credits without a matching degree working towards an answer from current and dli
round. For example, if a R reports working toward a associate's in his/her dli round and then reports
working toward a bachelor's in the current round, we will still use the total dli credits in the
current round created variable, as long as the SCHID's match (i.e., it is the same school).;

** Calculating the total credits have earned towards BA/Assoc degrees for previous rounds, that is
tasctr2/3/4/5/6/7 and tbactr2/3/4/5/6/7;

do i=1 to 6;
if asctr2(i)>=0 then tasctr2(i)=round((asctr2(i)*e27388r2(i)/100),1);
if asctr3(i)>=0 then tasctr3(i)=round((asctr3(i)*e27388r3(i)/100),1);
if asctr4(i)>=0 then tasctr4(i)=round((asctr4(i)*e27388r4(i)/100),1);
if asctr5(i)>=0 then tasctr5(i)=round((asctr5(i)*e27388r5(i)/100),1);
if asctr6(i)>=0 then tasctr6(i)=round((asctr6(i)*e27388r6(i)/100),1);
if asctr7(i)>=0 then tasctr7(i)=round((asctr7(i)*e27388r7(i)/100),1);


if bactr2(i)>=0 then tbactr2(i)=round((bactr2(i)*e27388r2(i)/100),1);
if bactr3(i)>=0 then tbactr3(i)=round((bactr3(i)*e27388r3(i)/100),1);
if bactr4(i)>=0 then tbactr4(i)=round((bactr4(i)*e27388r4(i)/100),1);
if bactr5(i)>=0 then tbactr5(i)=round((bactr5(i)*e27388r5(i)/100),1);
if bactr6(i)>=0 then tbactr6(i)=round((bactr6(i)*e27388r6(i)/100),1);
if bactr7(i)>=0 then tbactr7(i)=round((bactr7(i)*e27388r7(i)/100),1);

if asctr2(i)<0 then tasctr2(i)=asctr2(i);
if asctr3(i)<0 then tasctr3(i)=asctr3(i);
if asctr4(i)<0 then tasctr4(i)=asctr4(i);
if asctr5(i)<0 then tasctr5(i)=asctr5(i);
if asctr6(i)<0 then tasctr6(i)=asctr6(i);
if asctr7(i)<0 then tasctr7(i)=asctr7(i);

if bactr2(i)<0 then tbactr2(i)=bactr2(i);
if bactr3(i)<0 then tbactr3(i)=bactr3(i);
if bactr4(i)<0 then tbactr4(i)=bactr4(i);
if bactr5(i)<0 then tbactr5(i)=bactr5(i);
if bactr6(i)<0 then tbactr6(i)=bactr6(i);
if bactr7(i)<0 then tbactr7(i)=bactr7(i);
end;

do i=1 to 6;
do j=1 to 5;
if tasctr2(i)=>0 & r28m(i,j)=1 & e22800(j)=-4 then do; tcred(j)=tasctr2(i); dlcred(j)=1; end;
if tbactr2(i)=>0 & r28m(i,j)=1 & e22800(j)=-4 then do; tcred(j)=tbactr2(i); dlcred(j)=1; end;
if tasctr3(i)=>0 & r38m(i,j)=1 & e22800(j)=-4 then do; tcred(j)=tasctr3(i); dlcred(j)=1; end;
if tbactr3(i)=>0 & r38m(i,j)=1 & e22800(j)=-4 then do; tcred(j)=tbactr3(i); dlcred(j)=1; end;
if tasctr4(i)=>0 & r48m(i,j)=1 & e22800(j)=-4 then do; tcred(j)=tasctr4(i); dlcred(j)=1; end;
if tbactr4(i)=>0 & r48m(i,j)=1 & e22800(j)=-4 then do; tcred(j)=tbactr4(i); dlcred(j)=1; end;
if tasctr5(i)=>0 & r58m(i,j)=1 & e22800(j)=-4 then do; tcred(j)=tasctr5(i); dlcred(j)=1; end;
if tbactr5(i)=>0 & r58m(i,j)=1 & e22800(j)=-4 then do; tcred(j)=tbactr5(i); dlcred(j)=1; end;
if tasctr6(i)=>0 & r68m(i,j)=1 & e22800(j)=-4 then do; tcred(j)=tasctr6(i); dlcred(j)=1; end;
if tbactr6(i)=>0 & r68m(i,j)=1 & e22800(j)=-4 then do; tcred(j)=tbactr6(i); dlcred(j)=1; end;
if tasctr7(i)=>0 & r78m(i,j)=1 & e22800(j)=-4 then do; tcred(j)=tasctr7(i); dlcred(j)=1; end;
if tbactr7(i)=>0 & r78m(i,j)=1 & e22800(j)=-4 then do; tcred(j)=tbactr7(i); dlcred(j)=1; end;
end;
end;


*** Case 2: The following are people who reported a new school and have no completed terms (and thus no
answer to YSCH-22800). Use incoming credits.;



do i=1 to 5;
if e26931(i) in (0,1) & e22800(i)=-4 & e23000(i)=-4 then do;
incred(i)=1;
if e26931(i)=0 & e26940(i)=1 then tcred(i)=e26932(i);
else tcred(i)=e26945(i);
end;
end;

** YSCH-16200 only applies to school #1. It is an incoming credits question, and is only used when
YSCH-22800 and YSCH-23000 are valid skipped. This is asked only if a DLI college is reported and the
incoming credits reported is refused/dont know.;
if e162001>-4 & e228001=-4 & e230001=-4 then do;
tcred1=e162001;
incred1=2;
end;



** Check that the incoming credits (YSCH-162001) for school #1 equals the copmuted credits from that
school. If R answers that the incoming credits are wrong then YSCH-16200.01 is asked. Thus
YSCH-16200.01 is given precedence.;
if dlcred1=1 & incred1=2 & tcred1~=e162001 & e256541~=1 then incredprb=1;
if dlcred1=1 & incred1=2 & tcred1~=e162001 & e256541=1 then incredprb=0;

** Check to make sure the three methods of collecting credits information do not overlap.;
do i=1 to 5;
if crcred(i)=1 & incred(i)=1 then errci(i)=1;
if crcred(i)=1 & dlcred(i)=1 then errcd(i)=1;
if incred(i)=1 & dlcred(i)=1 then errdi(i)=1;
if incred(i)=2 & dlcred(i)=1 then errdi(i)=2;
end;


***** Initialize both created variables.;
do i=1 to 5;
asfrac(i)=0;
bafrac(i)=0;
end;


do i=1 to 5;

* Associates Degree;
if e27337(i)=1 & tcred(i)=>0 then tasc(i)=tcred(i);
if (-4<e27388(i)<0|-4<tcred(i)<0) & e27337(i)=1 then asfrac(i)=-3;
if tasc(i)=>0 & e27388(i)>0 then asfrac(i)=(tasc(i)/e27388(i))*100;
asfrac(i)=round(asfrac(i),1);
if e23200(i)=1 & e27337(i)=1 then asfrac(i)=100; * Rs who say they have graduated;

* Bachelors Degree;
if e27337(i)=3 & tcred(i)=>0 then tbac(i)=tcred(i);
if (-4<e27388(i)<0|-4<tcred(i)<0) & e27337(i)=3 then bafrac(i)=-3;
if tbac(i)=>0 & e27388(i)>0 then bafrac(i)=(tbac(i)/e27388(i))*100;
bafrac(i)=round(bafrac(i),1);
if e23200(i)=1 & e27337(i)=3 then bafrac(i)=100; * Rs who say they have graduated;

end;


*** Checking for fraction of credits earned over 100 or fraction of credits earned is 100 but reports
did not graduate.;

** Checking for the cases that credit fraction greater than 100;
do i=1 to 5;
if asfrac(i)>100 then ovr(i)=1;
if bafrac(i)>100 then ovr(i)=2;
if ovr(i)>=1 then over100=1;
end;

** Checking for the cases that get 100 or more percent credits but say need more credits to graduate;
do i=1 to 5;
if asfrac(i)>=100 & e23200(i)=0 then ngrd(i)=1;
if bafrac(i)>=100 & e23200(i)=0 then ngrd(i)=2;
if ngrd(i)>=1 then notgrad=1;
end;

** Checking missing asfrac and bafrac;
do i=1 to 5;
if e27337(i)=1 and asfrac(i)=. then miss(i)=1;
if e27337(i)=3 and bafrac(i)=. then miss(i)=2;
end;


** Asfrac or bafrac>=100, which means that they gained more credits than the credits required for the
degree (e27388), which means that they claimed that they still need more credits for the
degree (e23200=0) we would handle these observations as below:
(a) if e23200=0 and e23400>0, we add up e23400 and (tasc/tbac) the credits the Rs have earned as the
total credits required for the degree, and use it without e27388 to calculate the cv.
(33 school 1 R7)
(b) if e23200=0 and e23400<=0, e23450 equals -4. we would give -3 to CV.
(c) For observations that asfrac or bafrac>=100 and they haven't completed any term so we don't have
information about e23200 and e23400, use the same fraction as at last round. However if this is
a new college then we cannot use this method.
(d) if there are cases with CV>100 even after all these recomputations (a-c) then we give them -3
unless they made some corrections to the credits required to graduate (e23400).;

/****************************** NOTE: YSCH-23360.X ************************
** The wording of YSCH-23360 had some problem. It will NOT corrected until round 10. So, **
** this round and round 9 will not use this question. But from round 10, we can use this              **
** question and should do the changes on code accordingly then.                                               **
***************************************************************************/

** Case (a);
do i=1 to 5;
if ngrd(i)=1 & e23400(i)>0 then do;
asfrac(i)=round(100*tasc(i)/(tasc(i)+e23400(i)),1);
nfrct(i)=1;
end;
if ngrd(i)=2 & e23400(i)>0 then do;
bafrac(i)=round(100*tbac(i)/(tbac(i)+e23400(i)),1);
nfrct(i)=2;
end;
end;

** Case (b);
do i=1 to 5;
if ngrd(i)=1 & e23400(i)<=0 then do;
asfrac(i)=-3;
nofrct(i)=1;
end;
if ngrd(i)=2 & e23400(i)<=0 then do;
bafrac(i)=-3;
nofrct(i)=2;
end;
end;


** Case (c);

do i=1 to 5;
if asfrac(i)>100 & e23200(i)=-4 & e23400(i)=-4 then do;
olfrct(i)=1;
do j=1 to 7;
if DLI=j then do;
do k=1 to 6;
if SCHID(i)=s(j,k) & e(j,k)=1 & dlcred(i)=1 then asfrac(i)=a(j,k);
if SCHID(i)=s(j,k) & e(j,k)~=1 & dlcred(i)=1 then asfrac(i)=0;
end;
end;
end;
end;
if bafrac(i)>100 & e23200(i)=-4 & e23400(i)=-4 then do;
olfrct(i)=2;
do j=1 to 7;
if DLI=j then do;
do k=1 to 6;
if SCHID(i)=s(j,k) & e(j,k)=3 & dlcred(i)=1 then bafrac(i)=b(j,k);
if SCHID(i)=s(j,k) & e(j,k)~=3 & dlcred(i)=1 then bafrac(i)=0;
end;
end;
end;
end;
end;


*** Case (d);

do i=1 to 5;
if asfrac(i)>100 & e23400(i)>=0 then do;
asfrac(i)=round(100*tasc(i)/(tasc(i)+e23400(i)),1);
nfrct(i)=1;
end;
if asfrac(i)>100 & e23400(i)<0 then do;
asfrac(i)=-3;
nofrct(i)=1;
end;
if bafrac(i)>100 & e23400(i)>=0 then do;
bafrac(i)=round(100*tbac(i)/(tbac(i)+e23400(i)),1);
nfrct(i)=2;
end;
if bafrac(i)>100 & e23400(i)<0 then do;
bafrac(i)=-3;
nofrct(i)=2;
end;
end;


*** If R not working towards Associates or Bachelor's degree.;

do i=1 to 5;
if e27337(i)=-4 then do;
asfrac(i)=-4;
bafrac(i)=-4;
end;
if e27337(i)=1 then bafrac(i)=-4;
if e27337(i)=3 then asfrac(i)=-4;
if e27337(i) in (-1,-2,-3) then asfrac(i)=-3;
if e27337(i) in (-1,-2,-3) then bafrac(i)=-3;
end;

* Sometimes the degree working towards question is skipped. If these Rs have no HSD or GED then it is
OK. They may be enrolled in college to get some extra credits for later enrollment in college but are
currently enrolled in school. These should have CV=-4. But some are legitimately working towards an
AA/BA degree but since they got skipped out of the degree working towards question they got skipped
out of credits earned question as well. We code them as -3.;
/*
do i=1 to 5;
if e27337(i)=-4 & scode(i) in (4,5) & (hsd=1|ged=1) then do;
dgchk(i)=1;
bafrac(i)=-3;
asfrac(i)=-3;
end;
end;
*/

* There are 24 cases who reported to be in college but skipped the degree working towards.
These 24 cases are hand edited;

if pubid in (
89 579 794 3121 4003 4053 4289 4724 4875 5438 7221 4746) then do;
bafrac1=-3;
asfrac1=-3;
end;
if pubid in
(2390 1124 1706 1843 3506 4396 5292 7737) then do;
bafrac1=-4;
asfrac1=-4;
end;
if pubid in
(1695 2258 3388 1346) then do;
bafrac3=-3;
asfrac3=-3;
end;
if pubid=7221 then do;
bafrac2=-3;
asfrac2=-3;
end;

*****End of hand edit. *****;

ENDSAS;
 

Return to top


QED Data:  School Size and Student-Teacher Ratio

Variables Created: 

Variables Used

Name in Program

Question Name on CD

 

Name in Program

Question Name on CD

e2857r8 YSCH-2857   strtyr8_31 NEWSCHOOL_START3.01~Y
e3878r8 YSCH-3878   strtmr8_32 NEWSCHOOL_START3.02~M
e21625r8 YSCH-21625   strtyr8_32 NEWSCHOOL_START3.02~Y
pinr8_1 NEWSCHOOL_ID.01   stopmr8_11 NEWSCHOOL_STOP1.01~M
pinr8_2 NEWSCHOOL_ID.02   stopyr8_11 NEWSCHOOL_STOP1.01~Y
pinr8_3 NEWSCHOOL_ID.03   stopmr8_12 NEWSCHOOL_STOP1.02~M
pinr8_4 NEWSCHOOL_ID.04   stopyr8_12 NEWSCHOOL_STOP1.02~Y
pinr8_5 NEWSCHOOL_ID.05   stopmr8_13 NEWSCHOOL_STOP1.03~M
scoder8_1 NEWSCHOOL_SCHCODE.01   stopyr8_13 NEWSCHOOL_STOP1.03~Y
scoder8_2 NEWSCHOOL_SCHCODE.02   stopmr8_14 NEWSCHOOL_STOP1.04~M
scoder8_3 NEWSCHOOL_SCHCODE.03   stopyr8_14 NEWSCHOOL_STOP1.04~Y
scoder8_4 NEWSCHOOL_SCHCODE.04   stopmr8_15 NEWSCHOOL_STOP1.05~M
scoder8_5 NEWSCHOOL_SCHCODE.05   stopyr8_15 NEWSCHOOL_STOP1.05~Y
strtmr8_11 NEWSCHOOL_START1.01~M   stopmr8_21 NEWSCHOOL_STOP2.01~M
strtyr8_11 NEWSCHOOL_START1.01~Y   stopyr8_21 NEWSCHOOL_STOP2.01~Y
strtmr8_12 NEWSCHOOL_START1.02~M   stopmr8_22 NEWSCHOOL_STOP2.02~M
strtyr8_12 NEWSCHOOL_START1.02~Y   stopyr8_22 NEWSCHOOL_STOP2.02~Y
strtmr8_13 NEWSCHOOL_START1.03~M   stopmr8_31 NEWSCHOOL_STOP3.01~M
strtyr8_13 NEWSCHOOL_START1.03~Y   stopyr8_31 NEWSCHOOL_STOP3.01~Y
strtmr8_14 NEWSCHOOL_START1.04~M   stopmr8_32 NEWSCHOOL_STOP3.02~M
strtyr8_14 NEWSCHOOL_START1.04~Y   stopyr8_32 NEWSCHOOL_STOP3.02~Y
strtmr8_15 NEWSCHOOL_START1.05~M   PUBID PUBID
strtyr8_15 NEWSCHOOL_START1.05~Y   ager8 SYMBOL_KEY_AGE
strtmr8_21 NEWSCHOOL_START2.01~M   racer8 SYMBOL_KEY_RACE
strtyr8_21 NEWSCHOOL_START2.01~Y   sexr8 SYMBOL_KEY_SEX
strtmr8_22 NEWSCHOOL_START2.02~M   doicmr8 CV_INTERVIEW_CMONTH
strtyr8_22 NEWSCHOOL_START2.02~Y   intmr8 CV_INTERVIEW_DATE~M
strtmr8_31 NEWSCHOOL_START3.01~M   intyr8 CV_INTERVIEW_DATE~Y

Codes for Created Variable

School Size

Student-teacher ratio

1 = <100
2 = 100-299
3 = 300-499
4 = 500-749
5 = 750-999
6 = 1000+

1 = <14
2 = 14-17
3 = 18-21
4 = 22+

This program merges school identification information from the NLSY97 data with data from the "National Education Database," provided under copyright by Quality Education Data (QED), Inc.  It then creates two variables that provide information about the respondent's most recent K-12 school.


/* Before creating the QED variables, survey staff used dates of enrollment data to identify the respondent's current or most recent school, creating the temporary variable LSCH_CODE, and then merged that information with the QED data.  The process for identifying the most recent school is the same as that used in the creation of the CV_SCHOOL_TYPE variable, which appears earlier in this section.  This information is excluded here due to length and confidentiality restrictions.  Researchers needing more information about this process should contact NLS User Services. */

 ** Rs interviewed in Round 8;
data int; set f;
if e3878r8~=-5;

if e21625r8=999 then e21625r8=9;

** For respondents with e2857r8>12 but have a matching PIN number we will use the school with the
matching pin instead of the college. Even though the college is the most recent school in these
cases, the QED c.v.'s refer to the most recent high school (or middle, elementary, etc.). "HGAFLAG"
denotes the cases with college attendance and it takes the value of YSCH-2857.;

if e2857r8>12 & PIN>100 & LSCH_CODE in (1,2,3) then do;
hgaflag=e2857r8;
if college~=1 then hgaflag=1000+hgaflag;
e2857r8=12;
end;

** Here we are checking the consistency of grades reported with the grade range of the school reported.;
if GRADSPN ~=. then correct=0;
if 1<=e2857r8<=3 & GRADSPN in (1,4,5) then correct=1;
if 4<=e2857r8<=6 & GRADSPN in (1,4,5,6) then correct=1;
if 7<=e2857r8<=8 & GRADSPN in (1,5,6,7,8) then correct=1;
if e2857r8=9 & GRADSPN in (1,7,8,9) then correct=1;
if 10<=e2857r8<=12 & GRADSPN in (1,8,9,10) then correct=1;


** As long as the HGA is correct & hence the same as the HGA at the last high/middle/elementary school
reported the above method of checking the consistency of grades reported with the grade range of the
school reported is OK. However, if the HGA is different from the HGA at the last school reported then
the above method would be incorrect. So we decided to use the alternative method below. We will check
the cases where correct and corr are unequal to see which gives a better idea of whether the last
grade attended is within the grade range denoted in GRADSPN. Then we will make handedits. There are
only 3 cases of correct=0 & corr=1 & 15 cases of correct=1 & corr=0 and we handedited one of the
correct=0 and corr=1 cases to correct=1.;

if GRADSPN ~=. then corr=0;
if GRADSPN=1 & 1<=LSCH_GRADE<=12 then corr=1;
if GRADSPN=4 & 1<=LSCH_GRADE<=6 then corr=1;
if GRADSPN=5 & 1<=LSCH_GRADE<=8 then corr=1;
if GRADSPN=6 & 4<=LSCH_GRADE<=8 then corr=1;
if GRADSPN=7 & 7<=LSCH_GRADE<=9 then corr=1;
if GRADSPN=8 & 7<=LSCH_GRADE<=12 then corr=1;
if GRADSPN=9 & 9<=LSCH_GRADE<=12 then corr=1;
if GRADSPN=10 & 10<=LSCH_GRADE<=12 then corr=1;

** If the grades reported in the QED & the NLSY97 do not coincide, we make both created variables
equal to -3. Otherwise, we proceed to create them according to the definition provided at the top of
the program.;

if correct=0|GRADSPN=. then do;
SCHSIZE=-3;
STUDTEAC=-3;
INV1=-3;
INV2=-3;
end;

** If a respondent reports no schools in the Round 8 roster or the only schools in the Round 8 roster
are 2 or 4 year universities.;
if PIN=-4 then do;
SCHSIZE=-4;
STUDTEAC=-4;
INV1=-4;
INV2=-4;
end;

if e3878r8=-5 then do;
INV1=-5;
INV2=-5;
end;

if SCHSIZE>=0 then INV1=1;
if STUDTEAC>=0 then INV2=1;

if 1<=e2857r8<=3 & GRADSPN in (1,4,5) & GRADSPN not in (6,7,8,9,10) then correct=1;
if 4<=e2857r8<=6 & GRADSPN in (1,4,5,6) & GRADSPN not in (7,8,9,10) then correct=1;
if 7<=e2857r8<=8 & GRADSPN in (1,5,6,7,8) & GRADSPN not in (4,9,10) then correct=1;
if e2857r8=9 & GRADSPN in (1,7,8,9) & GRADSPN not in (4,5,6,10) then correct=1;
if 10<=e2857r8<=12 & GRADSPN in (1,8,9,10) & GRADSPN not in (4,5,6,7) then correct=1;


/******************************************************************************************************
** We make sure that there are not five or less schools in each cell determined by the region/census,
type of school, control, school size & the student-teacher ratio to avoid any possibilities of
identifying the schools. We first run the tabulations, then assign -3 to the created variables for
schools that fall in cells of five or less schools.;


proc freq data=censr noprint;
tables REGION*GRADSPN*SCHTYP*SCHSIZE*STUDTEAC/OUT=temp2;


data censr; set censr;
if COUNT<=5 then do;
SCHSIZE=-3;
STUDTEAC=-3;
censrQED=1;
end;

Return to top


Training:  Receipt of Certificate or Vocational License

Variables Created:

Variables Used

Name in Program

Question Name on CD

t640m1-t640m3 YTRN640.01-.03
t640y1-t640y3 YTRN640.01-.03
t690001-t690007 YTRN6900
t700001-t700007 YTRN7000
t1500m1-t1500m6 YTRN1500.00-.06
t1500y1-t1500y6 YTRN1500.00-.06
TRNCYR CV_TRN_CERT
TRNCMTH CV_TRN_CERT_DATE~Y
TRNCERT CV_TRN_CERT_DATE~M
PUBID PUBID_2003

Codes for Created Variable

Ever Received Vocational/Completion Certificate or State License (TRNCERT)

0  Condition Does Not Apply (no)--R took a training, but didn't earn cert.
1  Condition Applies (yes)

This program creates a variable that reports whether the respondent has ever received a certificate or license other than a GED through a training program.  If so, a pair of variables provide the month and year that the most recent certificate or license was obtained. 


/*Initialize variables*/
TRNCERT=.; /*Ever received vocational/completion certificate or state license*/
TRNCMTH=.; /*Month of most recent certificate/license--based on date of completion
of most recent cert/lic granting training program*/
TRNCYR=.; /*Year of most recent certificate/license--based on date of completion
of most recent cert/lic granting training program*/
reccert=0; /* a counting variable for use in programming to check do loops*/


/*Defining arrays*/
array t69000{8} t69001 - t69008;
array t70000{8} t70001 - t70008;
array t1500m{8} t1500m1 - t1500m8;
array t1500y{8} t1500y1 - t1500y8;
array t640m{8} t640m1 - t640m8;
array t640y{8} t640y1 - t640y8;
array trncrt{8} trncrt97 - trncrt99 trncrt2000- trncrt2004;
array trncmo{8} trncmo97 - trncmo99 trncmo2000 - trncmo2004;
array trncy{8} trncy97 - trncy99 trncy2000-trncy2004;

do i=1 to 8;
if reccert=0 and t69000{i}=1 and 1<=t70000{i}<=3 and t640y{i}>-4 then do;/*8-18-04*/
TRNCERT=1;
TRNCYR=t640y{i};
TRNCMTH=t640m{i};
reccert=1;
end;
if reccert=0 and t69000{i}=1 and 1<=t70000{i}<=3 and t1500y{i}>-4 then do; /*12-5-05*/
TRNCERT=1;
TRNCYR=t1500y{i};
TRNCMTH=t1500m{i};
reccert=1;
end;
if reccert>=1 and t69000{i}=1 and 1<=t70000{i}<=3 and t1500y{i}=TRNCYR and
t1500m{i}>TRNCMTH then do;
TRNCMTH=t1500m{i};
reccert=reccert+1;
end;
if reccert>=1 and t69000{i}=1 and 1<=t70000{i}<=3 and t640y{i}=TRNCYR and
t640m{i}>TRNCMTH then do;
TRNCMTH=t640m{i};
reccert=reccert+1;
end;
if reccert>=1 and t69000{i}=1 and 1<=t70000{i}<=3 and t1500y{i}>TRNCYR then do;
TRNCYR=t1500y{i};
TRNCMTH=t1500m{i};
reccert=reccert+1;
end;
if reccert>=1 and t69000{i}=1 and 1<=t70000{i}<=3 and t640y{i}>TRNCYR then do;
TRNCYR=t640y{i};
TRNCMTH=t640m{i};
reccert=reccert+1;
end;
if TRNCERT^=1 then do;
if t69000{i}=0 then TRNCERT=0;
if t69000{i}=1 and t70000{i}>3 then TRNCERT=0;
if t69000{i}=1 and t70000{i}<1 then TRNCERT=0;
end;
end;

/*code non-interviews*/
if t69001=-5 then do;
TRNCERT=-5;
TRNCYR=-5;
TRNCMTH=-5;
end;

/*This part compares values for current round to created vars for previous round(s)
to obtain the most recent date of cert/lic receipt*/

do i=1 to 8;
if trncert=. and trncrt{i}=1 then do;
TRNCERT=TRNCRT{i};
TRNCYR=TRNCY{i};
TRNCMTH=TRNCMO{i};

end;

if trncert=0 and trncrt{i}=1 then do;
TRNCERT=TRNCRT{i};
TRNCYR=TRNCY{i};
TRNCMTH=TRNCMO{i};
end;

if TRNCERT=1 and TRNCRT{i}=1 and TRNCY{i}>TRNCYR then do;
TRNCYR=TRNCY{i};
TRNCMTH=TRNCMO{i};
end;

if TRNCERT=1 and TRNCRT{i}=1 and TRNCY{i}=TRNCYR and TRNCMO{i}>TRNCMTH then do;
TRNCMTH=TRNCMO{i};
end;


if TRNCERT=. and TRNCRT{i}=0 then do;
TRNCERT=TRNCRT{i};
TRNCYR=TRNCY{i};
TRNCMTH=TRNCMO{i};
end;
end;


if TRNCYR=-2 or TRNCYR=-1 then TRNCYR=-3;
if TRNCMTH=-2 or TRNCMTH=-1 then TRNCMTH=-3;
if TRNCERT=. and t69001=-4 then TRNCERT=-4;
if TRNCERT=. and t69001=-5 then TRNCERT=-5;
if TRNCERT=. and t69001=-2 then TRNCERT=-3;
if TRNCERT=. and t69001=-1 then TRNCERT=-3;
if TRNCERT=. and t69001=-3 then TRNCERT=-3;
if TRNCERT=. then TRNCERT=0;
/*if R received training cert but there is no date, then date variables =
invalid skip*/

if TRNCERT=1 and TRNCMTH<1 then TRNCMTH=-3;
if TRNCERT=1 and TRNCYR<1 then TRNCYR=-3;

/*if R took training but did not receive training cert then the date variables=
valid skip */
if TRNCERT=0 then TRNCMTH=-4;
if TRNCERT=0 then TRNCYR=-4;


if TRNCERT=-3 then TRNCMTH=-3;
if TRNCERT=-3 then TRNCYR=-3;
if TRNCERT=-4 then TRNCMTH=-4;
if TRNCERT=-4 then TRNCYR=-4;
if TRNCERT=-5 then TRNCMTH=-5;
if TRNCERT=-5 then TRNCYR=-5;

if int_y=-5 and int_m=-5 then do;
TRNCERT=-5;
TRNCYR=-5;
TRNCMTH=-5;
end;

endsas;


Return to top Return to Table of Contents