Hi, I am new to SAS. Have searched a lot but I am unable to find the solution. My problem is that I want to generate a new variable based on the values of two other variables. An example is given below.
what I Have is
Company id Quarter Start End
1 1 130 133
1 2 190 194
1 3 230 231
what I want is
Company id Quarter Start End Days
1 1 130 133 130
1 1 131
1 1 132
1 1 133
1 2 190 194 190
1 2 191
1 2 192
1 2 193
1 2 194
1 3 230 231 230
1 3 231
Only Quarters, Days & company id is required/important. I have around 30,000+ quarters, with each quarter having a different start and end. Any simple way to do it? for every company, there are 81 quarters and there are 500 companies which all have a unique id.
Thanks a lot.
Like this?
data WANT;
set HAVE;
_LAST=END;
do DAYS=START to _LAST;
if DAYS ne START then call missing(START, END);
output;
end;
drop _:;
run;
| COMPANY_ID | QUARTER | START | END | DAYS |
| 1 | 1 | 130 | 133 | 130 |
| 1 | 1 | . | . | 131 |
| 1 | 1 | . | . | 132 |
| 1 | 1 | . | . | 133 |
| 1 | 2 | 190 | 194 | 190 |
| 1 | 2 | . | . | 191 |
| 1 | 2 | . | . | 192 |
| 1 | 2 | . | . | 193 |
| 1 | 2 | . | . | 194 |
| 1 | 3 | 230 | 231 | 230 |
| 1 | 3 | . | . | 231 |
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.