DATA Step, Macro, Functions and more

how to convert a string with potential to numeric

Reply
Contributor
Posts: 25

how to convert a string with potential to numeric

Hello,

I have strings need to convert to numeric.

 

data test;

input value $12.;

datalines;

0.4567

2.678E-2

3.5679E-3

-0.1987

0.03489

0.5634

run;

how to get the numeric values. Thanks!

 

Super User
Posts: 17,784

Re: how to convert a string with potential to numeric

If you remove the $12. SAS reads in the values as numerics accurately. 

 

If you need to convert it, use INPUT with a best format, but it's more efficient to just delete the $12 in my opinion.

 

data test;
input value $12.;
value_num =input(value, best12.);
datalines;
0.4567
2.678E-2
3.5679E-3
-0.1987
0.03489
0.5634
;
run;
Super User
Posts: 10,483

Re: how to convert a string with potential to numeric

If you have a data set and want to add a numeric variable:

data work.want;
   set test;
   value_num = input(value,best.);
run;

If you want to keep the same name for the variable you need a bit more as you cannot change the type of a variable once it is set.

 

data work.want;
   set test (rename= (value=oldvalue) );
   value = input(oldvalue,best.);
   drop oldvalue;
run;
Frequent Contributor
Posts: 117

Re: how to convert a string with potential to numeric

Hi,

 

Give the appropriate informat in the input statement.

 

data test;
format value 12.4;
input value e12.5;
datalines;
0.4567
2.678E-2
3.5679E-3
-0.1987
0.03489
0.5634
;
run;

Thanks,

Suryakiran

Super User
Super User
Posts: 6,499

Re: how to convert a string with potential to numeric

You can use the INPUT() function to convert a string to a number. The normal numeric informat will work with those strings.

num_value = input(value,12.);

 

Ask a Question
Discussion stats
  • 4 replies
  • 108 views
  • 1 like
  • 5 in conversation