I want to display a simple pre-fix for decimal numbers contained within a variable based on the value of those decimal numbers.
I have a series of numbers on [0,1). if the numbers are less than 0.001, then I want the number to display as '<.001'. Otherwise, I want to display the original value with an equal sign in front of it ('=[original number]');
I provide a sample dataset as well as the code that I used to try to accomplish this task.
The PRINT procedure output shows that I am partly there, but not quite. Basically, to get what I am after, the output would need to display '<0.001' instead of '<0.000' for the first 2 observations. The last 3 observations output the way I want them to.
Hope some one can help me.
Thanks.
proc format;
picture numbers
low-<.001 = '000009.999'(prefix='<' mult=1000)
.001-high = '000009.999'(prefix='=' mult=1000);
run;
data have;
input numbers;
datalines;
0.0000
0.0001
0.0010
0.0200
0.0500
;
proc print data=have;
format numbers numbers.;
run;
PICTURE formats support the NOEDIT option:
So you could code your format in this (untested) fashion:
proc format;
picture numbers
low-<.001 = '<.001' (noedit)
.001-high = '000009.999'(prefix='=' mult=1000);
run;
You may need to play with the spacing to get all values to line up properly.
PICTURE formats support the NOEDIT option:
So you could code your format in this (untested) fashion:
proc format;
picture numbers
low-<.001 = '<.001' (noedit)
.001-high = '000009.999'(prefix='=' mult=1000);
run;
You may need to play with the spacing to get all values to line up properly.
Hi.
Thanks for your help -- your solution worked perfectly for me.
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.