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?
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!
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.