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.;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.