GET FILE='WBL (0506) New Master - TRIM.sav'.
SELECT IF ANY(a15,2,3).
SELECT IF NOT (((a31-a27) / (60*60*24*7))<6 AND (frm_ach=0 AND nvq_ach = 0)) OR miss > 0 OR MISSING(a31).
COMPUTE period = 0. COMPUTE mnth_per = period + 7. COMPUTE year_per = 2005. IF (mnth_per > 12) year_per = year_per + 1. IF (mnth_per > 12) mnth_per = mnth_per - 12.
COMPUTE period_b = XDATE.MONTH(MAX(A28,A31)) + 5. IF (period_b > 12) period_b = period_b - 12.
IF (a31 > DATE.DMY(31,mnth_per,year_per)) continuing = 1. IF (a31 > DATE.DMY(31,mnth_per,year_per)) leavers = 0. IF (a28 > DATE.DMY(31,mnth_per,year_per)) expendyr = 2005.5. COMPUTE hybridendyr= MAX(expendyr,actendyr).
COMPUTE achieve = 0. IF(frm_ach > 0 and continuing = 0) achieve =1. COMPUTE timely_ach = 1. IF NOT (a31 <= a28 + (31*24*60*60) AND frm_ach = 1) timely_ach = 0.
COMPUTE achieve_nf = 0. IF(achieve = 1 OR (nvq_ach > 0 and continuing = 0)) achieve_nf=1. COMPUTE timely_ach_nf = 1. IF NOT (a40 <= a28 + (31*24*60*60) AND nvq_ach = 1) timely_ach_nf = 0. IF (timely_ach = 1) timely_ach_nf = 1.
RECODE achieve timely_ach achieve_nf timely_ach_nf (MISSING = 0).
IF (actendyr <= 2001 AND leavers = 1) actend0102_lv = 1. IF (actendyr = 2002 AND leavers = 1) actend0203_lv = 1. IF (actendyr = 2003 AND leavers = 1) actend0304_lv = 1. IF (actendyr = 2004 AND leavers = 1) actend0405_lv = 1. IF (actendyr = 2005 AND leavers = 1) actend0506_lv = 1. RECODE actend0102_lv actend0203_lv actend0304_lv actend0405_lv actend0506_lv (MISSING=0) .
IF (actendyr <= 2001 AND achieve = 1) actend0102_ach = 1. IF (actendyr = 2002 AND achieve = 1) actend0203_ach = 1. IF (actendyr = 2003 AND achieve = 1) actend0304_ach = 1. IF (actendyr = 2004 AND achieve = 1) actend0405_ach = 1. IF (actendyr = 2005 AND achieve = 1) actend0506_ach = 1. RECODE actend0102_ach actend0203_ach actend0304_ach actend0405_ach actend0506_ach (MISSING=0) .
IF (actendyr <= 2001 and achieve_nf = 1) actend0102_ach_nf = 1. IF (actendyr = 2002 and achieve_nf = 1) actend0203_ach_nf = 1. IF (actendyr = 2003 and achieve_nf = 1) actend0304_ach_nf = 1. IF (actendyr = 2004 and achieve_nf = 1) actend0405_ach_nf = 1. IF (actendyr = 2005 and achieve_nf = 1) actend0506_ach_nf = 1. RECODE actend0102_ach_nf actend0203_ach_nf actend0304_ach_nf actend0405_ach_nf actend0506_ach_nf (MISSING=0)
IF (expendyr < 2001 or SYSMIS(expendyr)) expendyr = 2001.
STRING lookup (a10). COMPUTE lookup = CONCAT(STRING(L01,F6),STRING(expendyr,F4)) .
AGGREGATE /OUTFILE=* /BREAK= L01 expendyr lookup /actend0102_lv = SUM(actend0102_lv) /actend0203_lv = SUM(actend0203_lv) /actend0304_lv = SUM(actend0304_lv) /actend0405_lv = SUM(actend0405_lv) /actend0506_lv = SUM(actend0506_lv) /actend0102_ach = SUM(actend0102_ach) /actend0203_ach = SUM(actend0203_ach) /actend0304_ach = SUM(actend0304_ach) /actend0405_ach = SUM(actend0405_ach) /actend0506_ach = SUM(actend0506_ach) /continuing = SUM(continuing) /trans = SUM(trans) /timely_ach = SUM(timely_ach) /TotalLearners = NU /actend0102_ach_nf = SUM(actend0102_ach_nf) /actend0203_ach_nf = SUM(actend0203_ach_nf) /actend0304_ach_nf = SUM(actend0304_ach_nf) /actend0405_ach_nf = SUM(actend0405_ach_nf) /actend0506_ach_nf = SUM(actend0506_ach_nf) /timely_ach_nf = SUM(timely_ach_nf). |