That is odd. I can't repeat your error. Please provide your error part of your log. Here is what I have just tried: data have; input POINTS; cards; 1.25 .77 .99 1.13 .03 1.03 .89 1.33 ; data want; set have; points=ifn(points>1.05,1.05,points); run; proc print;run; And this was my log: 587 data have; 588 589 input POINTS; 590 591 cards; NOTE: SAS went to a new line when INPUT statement reached past the e NOTE: The data set WORK.HAVE has 8 observations and 1 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds 601 ; 602 603 data want; 604 605 set have; 606 607 points=ifn(points>1.05,1.05,points); 608 609 run; NOTE: There were 8 observations read from the data set WORK.HAVE. NOTE: The data set WORK.WANT has 8 observations and 1 variables. NOTE: DATA statement used (Total process time): real time 0.12 seconds cpu time 0.01 seconds 610 611 proc print;run; NOTE: There were 8 observations read from the data set WORK.WANT. NOTE: PROCEDURE PRINT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds And this is the output: Obs POINTS 1 1.05 2 0.77 3 0.99 4 1.05 5 0.03 6 1.03 7 0.89 8 1.05 Everything seems normal to me. Ifn() is a function, if is a statement. In this case, you can do it both ways. However, in the context of my code, it has to be ifn(). You need to rephrase the code to be able to use 'if'. For details, please refer to SAS manual. Haikuo
... View more