Hi..
I have arithmetic expressions in a character field in a dataset as below...
example:
exp
701*10 ** 6
460*10 ** 6
6.22 * 10**-4
2*10**-3
Am unable to evaluate the expressions and keep them in a numeric variable..Can anyone please help me in this regard..
Thanks
I suggest that you use the Call Execute routine for this.
How about:
data have; input exp $20.; cards; 701*10 ** 6 460*10 ** 6 6.22 * 10**-4 2*10**-3 ; run; data want; set have; result=resolve(cats('%sysevalf(',exp,')')); run;
Ksharp
Neat!
LinusH,
You still didn't go to sleep ?
At Sweden , It should be very late.
But At China, It is afternoon.
Ksharp
I had sleep, but is 9 AM in sweden right now, and I 'm back to work! Thanx for your concern...
Hi ... great solution. One extra thing, I think the poster wants a numeric result ...
"Am unable to evaluate the expressions and keep them in a numeric variable"
So maybe ...
data want;
set have;
result=input(resolve(cats('%sysevalf(',exp,')')), 12.);
run;
You are welcome. In fact , this skill I learned is from this Forum .
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.