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 .
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.
Ready to level-up your skills? Choose your own adventure.