Hi @Sowmya12,
If the first part of your data is always the year, then the below might help (assuming your date is character, based on what you've shown).
The scan() function selects part of string that is separated by a specific character(s).
data have;
input my_date : $char10.;
datalines;
2019/un/un
11/un/un
;
data want;
set have;
y = scan(my_date,1,'/');
run;
Kind regards,
Amir.
11 is not a year (2011 would be).
If you don't even know the order of the parts (YMD, DMY or MDY), you can't solve this.
Hi @Sowmya12,
If the first part of your data is always the year, then the below might help (assuming your date is character, based on what you've shown).
The scan() function selects part of string that is separated by a specific character(s).
data have;
input my_date : $char10.;
datalines;
2019/un/un
11/un/un
;
data want;
set have;
y = scan(my_date,1,'/');
run;
Kind regards,
Amir.
I would store year as a number with length 3. This allows years up to 8192, consumes the least space, and can be used in calculations or functions without conversion.
True.
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 16. Read more here about why you should contribute and what is in it for you!
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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: