## Convert character to numeric \$1,000.32

Solved
Super Contributor
Posts: 503

# Convert character to numeric \$1,000.32

[ Edited ]

Hello everyone,

I am dealing with a quite messy data and I want to convert them into numeric.

in the same variable, I have value of say: \$90 , \$90.25 , 90.28, 1,012 , \$1,253.25

I mean, any combination among \$ and comma (,)

My approach is to compress "\$" and "," and then create new variable but clearly, it doesn't work.

Please, any help is very much appreciated.

HC

`data have;input var1 \$ var2 \$;datalines;\$84.12 \$1,000.20\$1,184.12 1,000.2084 \$55;run;data have; set have; var1=input(compress(var1,'\$'),best12.); *I am thinking about an IF var1 contain \$ then do, but I dont know how to; var1=input(compress(var1,','),best12.); var2=input(compress(var2,'\$'),best12.); var2=input(compress(var2,','),best12.);run;data want; set have;drop var1 var2; var1_new=Input(var1 ,best12.); var2_new=Input(var2 ,best12.);run;`

Accepted Solutions
Solution
‎09-19-2017 12:06 PM
Frequent Contributor
Posts: 113

## Re: Convert character to numeric \$1,000.32

[ Edited ]

Try this...

``````data WANT;
set HAVE;
var1_new=input(compress(var1,"\$,"),8.);
var2_new=input(compress(var2,"\$,"),8.);
RUN;``````

Hope it helps.

All Replies
Solution
‎09-19-2017 12:06 PM
Frequent Contributor
Posts: 113

## Re: Convert character to numeric \$1,000.32

[ Edited ]

Try this...

``````data WANT;
set HAVE;
var1_new=input(compress(var1,"\$,"),8.);
var2_new=input(compress(var2,"\$,"),8.);
RUN;``````

Hope it helps.

PROC Star
Posts: 503

## Re: Convert character to numeric \$1,000.32

if you reading the data all you need to do is give informat commaw.d. You can try something like below

```data have;
input var1:comma10.2 var2:comma10.2;
datalines;
\$84.12 \$1,000.20
\$1,184.12 1,000.20
84 \$55
;```
PROC Star
Posts: 2,316

## Re: Convert character to numeric \$1,000.32

[ Edited ]

Like this?

``````data WANT;
set HAVE;
VARN1=input(VAR1,dollar12.);
VARN2=input(VAR2,dollar12.);
run;``````
☑ This topic is solved.