Hi,
I have following data;
permno | date |
1 | 1/31/2008 |
2 | 1/31/2008 |
3 | 1/31/2008 |
1 | 2/29/2008 |
2 | 2/29/2008 |
3 | 2/29/2008 |
I am using following code,
data tmp1.firstandlastdates;
set tmp1.finaluse(keep=permno date);
by permno; /*finaluse is always sorted by permno date*/
retain firstdate;
date=intnx('month', date, 1)-1;
if first.permno then firstdate=date;
if last.permno then do;
lastdate=date;
output;
end;
run;
The results I am getting is in this form;
permno | date | firstdate | lastdate |
1 | 1/31/2008 | 17562 | 17562 |
2 | 1/31/2008 | 17562 | 17562 |
3 | 1/31/2008 | 17562 | 17562 |
1 | 2/29/2008 | 17562 | 17562 |
2 | 2/29/2008 | 17562 | 17562 |
3 | 2/29/2008 | 17562 | 17562 |
As you can see, the first and lastdates are not in date format but rather in some other form. What can be causing this?
They are dates you haven't applied a format yet.
SAS stores dates as the number of days from January 1, 1960.
Add a FORMAT statement to apply formats to your dates and they'll show up as desired.
format firstdate yymmddd10. lastdate date9.;
@Amalik wrote:
Hi,
I have following data;
permno date 1 1/31/2008 2 1/31/2008 3 1/31/2008 1 2/29/2008 2 2/29/2008 3 2/29/2008
I am using following code,
data tmp1.firstandlastdates;
set tmp1.finaluse(keep=permno date);
by permno; /*finaluse is always sorted by permno date*/
retain firstdate;
date=intnx('month', date, 1)-1;
if first.permno then firstdate=date;
if last.permno then do;
lastdate=date;
output;
end;
run;The results I am getting is in this form;
permno date firstdate lastdate 1 1/31/2008 17562 17562 2 1/31/2008 17562 17562 3 1/31/2008 17562 17562 1 2/29/2008 17562 17562 2 2/29/2008 17562 17562 3 2/29/2008 17562 17562
As you can see, the first and lastdates are not in date format but rather in some other form. What can be causing this?
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!
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.