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.;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.