Help using Base SAS procedures

Convert variable to character

Reply
New Contributor
Posts: 2

Convert variable to character

Hi,

I want to convert a already read in variable into a character - the opposite of e.g new_breed=breed*1

I am thankful for any help Smiley Happy

Respected Advisor
Posts: 3,061

Re: Convert variable to character

Posted in reply to LauraFranziska

You cannot convert a numeric variable to character.

 

You can make a new character variable from a numeric variable.

 

char_var = put ( num_var, 5.);

or use whatever format works in your case

--
Paige Miller
New Contributor
Posts: 2

Re: Convert variable to character

Posted in reply to PaigeMiller

Thanks for your help.

What is the 5 for?

Sorry, I'm new to SAS... Smiley Happy

SAS Super FREQ
Posts: 9,371

Re: Convert variable to character

[ Edited ]
Posted in reply to LauraFranziska

Hi:
The 5. is a FORMAT -- it is the format that SAS uses to make the conversion. So, for example, if you have this zip=123 and you want to make charzip = 00123 as a character variable then you would use the z5. format, like this:
charzip = put(zip,z5.);

Or, if you have this: area=303 and you want this: char_area (303), then you would do:
char_area=catt('(',put(area,3.),')'); (concatenate the ( and ) with the character string 303 after the PUT function.

We teach about the PUT and INPUT functions and variable conversions in the Programming 2 class.

cynthia

Valued Guide
Posts: 580

Re: Convert variable to character

Posted in reply to LauraFranziska

new_breed=breed*1 triggers auto-converting "breed" to numeric so that the multiplication is possible. If you are sure, that an char-variable can be converted to numeric, use the input-function. That way you don't get tons of notes in the log and with the proper format you can convert non-english numbers to numbers.

 

Example:

data demo;
   a = '1.016,052';
   b = input(a, commax15.);
run;
Ask a Question
Discussion stats
  • 4 replies
  • 254 views
  • 1 like
  • 4 in conversation