BookmarkSubscribeRSS Feed
deleted_user
Not applicable
I want to format a range of numbers so that anything with a value of greater than zero is formatted as zero, whereas anything with a negative value is left unchanged.

This is what I am trying to use.

proc format;
value eq
0 - high = 0;
run;

But as I'm not specifying any format for the range below zero I get the error:

ERROR: Invalid value for width specified - width out of range

Thanks.
2 REPLIES 2
Doc_Duke
Rhodochrosite | Level 12
I got a slightly different error message in SAS 9.2, but the effect was the same. I was able to get around the message with this format

0 - high = 00000;

but then it printed all non-negative numbers as 00000, which is also less than ideal.
ballardw
Super User
It appears that the single 0 is being used like a digit selector in a PICTURE statement for some reason. Try assigning another format to the range below 0 such as below.

value eq
low - <0 = [best8.]
1-high = '0';
run;

sas-innovate-2024.png

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.

 

Register now!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 2 replies
  • 1922 views
  • 0 likes
  • 3 in conversation