Hello,
I have a set of time series of date data (see below). But the type of data is 'Numerical', the Format is 'Best12.' and informat is 12.''. When I use the code 'year(date)', I get wrong outcome. How to manipulate these date data if I want to get '1960 for year and 01 for month of first obs' using codes 'year(date) and month(date)'? Thanks
date
196001
196002
196003
196004
.....
.....
year=floor(date/100);
month=mod(date,100);
The YEAR and MONTH functions that you are trying to use only work on data stored as SAS dates, which these are not.
year=floor(date/100);
month=mod(date,100);
The YEAR and MONTH functions that you are trying to use only work on data stored as SAS dates, which these are not.
If you want to make a SAS date from your date number first:
format sas_date date9.;
sas_date = input(date, yymmn6.);
year = year(sas_date);
month = month(sas_date);
Hi ,
We can also use the below approach .
data have ;
input date ;
year = input(substr(strip(date),1,4),6.);
month= input(substr(strip(date),5,2),4.);
datalines;
196001
196002
196003
196004
;
run;
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 save with the early bird rate—just $795!
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.