I have one field named 'Amount' which is in character format of 20 bytes i.e. $20.
I want to perform Sort Sum on this amount field but I am getting error as character data can't be added up. Please suggest what needs to be done here?
I have below amounts in my input file which has been set as $20. Also, I have tried changing $20. to PD format but no luck. I want to convert this in numeric format so that it will be printed as it is and sort sum can be performed.
-80.45
-202.07
33
126995.77
Like this?
data have;
input Amount $20.;
datalines;
-80.45
-202.07
33
126995.77
;
data want;
set have;
NumAmount=input(Amount, 20.);
run;
I already tried the below code. But the amounts are not populating as expected.
The decimal digit places are not being printed. Also, I tried 20.2 but it it converting all the values with 2 decimal places.
When I ran code with 20.2 I got below result which is wrong.
Input Output
-79.34 -79.34
0 0.00
854 8.54
-202.07 -202.07
When I ran the code with 20. I got below results.
Input Output
-79.34 -79
0 0
854 854
-202.07 -202.
Why do you want to use 20.2?
You can use 20. or best12. as well based on the highest length.
@PeterClemmensen provided the correct solution. You are getting those results because you added to it something like:
format NumAmount 20.;
Get rid of the FORMAT statement.
So you applied the format in a PUT statement instead of a FORMAT statement. Still, you got what you requested. Change the PUT statement:
put @30 amtn 20.2;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.