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 2025: Call for Content

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!

Submit your idea!

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
  • 2098 views
  • 0 likes
  • 3 in conversation