I have data for people in this form:
DATA have;
INPUT id start_age end_age;
DATALINES;
1 27 30
2 15 15
3 30 32
;
RUN
I want to add a new row for every year of data between the two ages, inclusive of start and end ages. My desired output looks like:
ID age_year
1 27
1 28
1 29
1 30
2 15
3 30
3 31
3 32
Should I use an array and within a do loop add rows for i=start_age to end_age?
Please dont code all in uppercase. A simple do loop and output will suffice:
data want (drop=start_age end_age); set have; do age=start_age to end_age; output; end; run;
Please dont code all in uppercase. A simple do loop and output will suffice:
data want (drop=start_age end_age); set have; do age=start_age to end_age; output; end; run;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.