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;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.