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;

Catch up on SAS Innovate 2026

Dive into keynotes, announcements and breakthroughs on demand.

Explore 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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

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