DATA Step, Macro, Functions and more

Conversion of month in character to numeric

Accepted Solution Solved
Reply
New Contributor
Posts: 3
Accepted Solution

Conversion of month in character to numeric

Hi,

So, I have a variable named Birthmonth which has Months in Character i.e January, February...etc

I want these to be converted into their respective numeric equals.

How to do this?


Accepted Solutions
Solution
‎03-30-2018 12:35 AM
PROC Star
Posts: 8,114

Re: Conversion of month in character to numeric

Posted in reply to abhi18sas

Here is one way:

data want;
  set have;
  month=month(input(catt('1',substr(birthmonth,1,3),'2018'),date9.));
run;

Art, CEO, AnalystFinder.com

 

View solution in original post


All Replies
Solution
‎03-30-2018 12:35 AM
PROC Star
Posts: 8,114

Re: Conversion of month in character to numeric

Posted in reply to abhi18sas

Here is one way:

data want;
  set have;
  month=month(input(catt('1',substr(birthmonth,1,3),'2018'),date9.));
run;

Art, CEO, AnalystFinder.com

 

New Contributor
Posts: 3

Re: Conversion of month in character to numeric

Thanks!!

Super User
Posts: 13,046

Re: Conversion of month in character to numeric

Posted in reply to abhi18sas

Here are two ways:

data want;
   set have;
   select (birthmonth);
      when ('January')   monthnum=1;
      when ('February')  monthnum=2;
      when ('March')     monthnum=3;
      when ('April')     monthnum=4;
      when ('May')       monthnum=5;
      when ('June')      monthnum=6;
      when ('July')      monthnum=7;
      when ('August')    monthnum=8;
      when ('September') monthnum=9;
      when ('October')   monthnum=10;
      when ('November')  monthnum=11;
      when ('December')  monthnum=12;
      otherwise;
   end;
run;

data want;
   set have;
   birthmonth='January';
   array m(12) $ 15 _temporary_('January','February','March','April','May','June','July','August','September'
       'October','November','December') ;
  monthnum = whichc(birthmonth,of m(*));
run;

Both of these are case sensitive. So if your spelling changes case such as "MAY", "May" and "may" you would want to use a case function on your variable (propcase(birthmonth) most likely) and use the appropriate comparison.

 

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 95 views
  • 2 likes
  • 3 in conversation