## How to ignore non numeric portion of a character variable and convert it to numeric?

Solved
Occasional Contributor
Posts: 19

# How to ignore non numeric portion of a character variable and convert it to numeric?

I have a variable which has values like >=500, >75 in addition to truly numeric values in integers.

I need to convert it to a numeric variable while ignoring the =, <= etc.

The SAS input function does not work in this case.

Thank you.

Here is a sample set

data what;

input  \$lab;

datalines;

<=500

<75

=<100

2000

300

400

10

;

run;

Accepted Solutions
Solution
‎10-03-2013 06:34 PM
Occasional Contributor
Posts: 15

## Re: How to ignore non numeric portion of a character variable and convert it to numeric?

Hi, you can use a compress function here in ways it fits best and if the variable is non numeric use the input function to convert it to numeric.

Example: kk = compress(lab,"<= ");  /*Here it will compress <= and blanks in the variable*/

OR

kk = compress(lab,"1234567890","k")   /* This will keep only 1234567890 values in the variable and it you have a decimal you can include . in the list*/

Use of input function: jj = input(kk,best12.);     /***Assigning informat to the variable******/

format jj best12.;    /*****Output/Display format***************/

Hope that helps!

Regards,

Somi

All Replies
Solution
‎10-03-2013 06:34 PM
Occasional Contributor
Posts: 15

## Re: How to ignore non numeric portion of a character variable and convert it to numeric?

Hi, you can use a compress function here in ways it fits best and if the variable is non numeric use the input function to convert it to numeric.

Example: kk = compress(lab,"<= ");  /*Here it will compress <= and blanks in the variable*/

OR

kk = compress(lab,"1234567890","k")   /* This will keep only 1234567890 values in the variable and it you have a decimal you can include . in the list*/

Use of input function: jj = input(kk,best12.);     /***Assigning informat to the variable******/

format jj best12.;    /*****Output/Display format***************/

Hope that helps!

Regards,

Somi

Occasional Contributor
Posts: 19

## Re: How to ignore non numeric portion of a character variable and convert it to numeric?

I tried substr function. It is a longer way of doing this job.

if substr(result, 1, 2) in("<=","=<",">=")then results=substr(result,3,10);

else if substr(result,1,1)="<" then results=substr(result, 2,10);

else results=result;

results1=input(results,best12.);

Thanks!

Occasional Contributor
Posts: 15

## Re: How to ignore non numeric portion of a character variable and convert it to numeric?

K is a modifier and is used for keep. Also, in your method you could do it when obs are less as you can look and check where is the position of <>=, and impossible when their are thousands of obs.

SAS(R) 9.2 Language Reference: Dictionary, Fourth Edition

Regards,

Somi

🔒 This topic is solved and locked.