DATA Step, Macro, Functions and more

PROC FORMAT - Missing Values

Reply
anonymous_user
Posts: 0

PROC FORMAT - Missing Values

Hi,

 

I have created the PROC Format below which i thought would capture all scenarios but my output is getting a value for '.'

 

Any idea why please

 

value ppd
LOW - 0 = "UTD"
0 <-1 = "LT 1 PPD"
1 <-2 = "1 PPD"
2 <-3 = "2 PPD"
3 <- HIGH = "3+ PPD";

Super User
Posts: 7,761

Re: PROC FORMAT - Missing Values

[ Edited ]
Posted in reply to anonymous_user

You either need to name a specific label for missing values

. = 'Missing'

or use OTHER as range to "catch" all values that have not been covered by your ranges:

OTHER = 'Everything else'

 

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
anonymous_user
Posts: 0

Re: PROC FORMAT - Missing Values

Posted in reply to KurtBremser

Thanks, but I would have thought that the ranges specified would cover them all off so I wouldn't expect any missing values.

Super User
Posts: 7,761

Re: PROC FORMAT - Missing Values

Posted in reply to anonymous_user

Although a missing value is considered smaller than any other numeric value in comparisons, it is not included in a range that starts with low. That only covers non-missing values. Your intention is probably met best by doing this:

data have;
input inval;
cards;
.
-1
0
1
2
3
4
;
run;

proc format library=work;
value ppd
  .,LOW - 0 = "UTD"
  0 <- 1 = "LT 1 PPD"
  1 <- 2 = "1 PPD"
  2 <- 3 = "2 PPD"
  3 <- HIGH = "3+ PPD"
;
run;

data want;
set have;
outval = put(inval,ppd.);
run;

proc print noobs;
run;

Output:

inval    outval

   .     UTD     
  -1     UTD     
   0     UTD     
   1     LT 1 PPD
   2     1 PPD   
   3     2 PPD   
   4     3+ PPD  
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
anonymous_user
Posts: 0

Re: PROC FORMAT - Missing Values

Posted in reply to KurtBremser

Thank you for your help, that worked! 

Ask a Question
Discussion stats
  • 4 replies
  • 3248 views
  • 0 likes
  • 2 in conversation