BookmarkSubscribeRSS Feed
ahmedkhan
Calcite | Level 5

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. 

 

1 REPLY 1
ChrisNZ
Tourmaline | Level 20

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

 

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 478 views
  • 0 likes
  • 2 in conversation