I use intnx function but it give date format diffirent from I want
data firstandlastdates; set crsp.msf(keep=permno date); by permno; /*MSF 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; data permnosrankdates(rename=(date=rankdate)); set firstandlastdates; date=firstdate; do while(date<=lastdate); output; date=intnx('month', date+1, 1)-1; end; run;
data permnosrankdates; set permnosrankdates; date=rankdate; i=1; do while(i<=24); output; date=intnx('month', date, 0)-1; i=i+1; end; run;
the result that I want
Obs PERMNO rankdate date i 1 10000 19851231 19851231 1 2 10000 19851231 19851130 2 3 10000 19851231 19851030 3 4 10000 19851231 19850930 4 5 10000 19851231 19850831 5 ......
the result i GOT
Obs PERMNO rankdate date i 1 10000 19851231 1986 1 2 10000 19851231 8476 2 3 10000 19851231 2356 3 4 10000 19851231 4 5 10000 19851231 5
So I want to good date format YYMMDDN8.
You need to assign the format you want to variable date when you create it in the data set. This has nothing to do with INTNX
How to do it please
format date yymmddn8.;
SAS is headed back to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team.
Interested in speaking? Content from our attendees is one of the reasons that makes SAS Innovate such a special event!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.