Online File
Rick Aster: Professional SAS Programming Shortcuts: Contents
DATA WORK.EOD (KEEP=DATE LATESTRATE RENAME=(LATESTRATE=RATE) INDEX=(DATE)); LENGTH DATE 4; RETAIN PREVIOUSDATE LATESTRATE; SET WORK.CHANGES; BY EFFECTIVE; * Fill in dates between changes. ; IF FIRST.EFFECTIVE AND EFFECTIVE > PREVIOUSDATE > .Z THEN DO DATE = PREVIOUSDATE + 1 TO EFFECTIVE - 1; OUTPUT; END; IF LAST.EFFECTIVE THEN DO; DATE = EFFECTIVE; LATESTRATE = RATE; OUTPUT; PREVIOUSDATE = EFFECTIVE; END; RUN;