BookmarkSubscribeRSS Feed
daisy6
Quartz | Level 8

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!

 

4 REPLIES 4
Reeza
Super User

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;
ballardw
Super User

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;
SuryaKiran
Meteorite | Level 14

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

Thanks,
Suryakiran
Tom
Super User Tom
Super User

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.);

 

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 3674 views
  • 1 like
  • 5 in conversation