BookmarkSubscribeRSS Feed
knveraraju91
Barite | Level 11

Dear,

 

I ran proc compare on two datasets. The numeric variable values of two datasets  are exactly same but not matching in proc compare. Any suggestions. Please help. Thanks.

The format and informat are same in both datasets.

 I attached a proc compare report. 

 

data base

AVAL

102.64285714

 

data compare

AVAL

102.64285714

 

 

4 REPLIES 4
Kurt_Bremser
Super User

Visibly equal data may not be technically equal. The way numbers are stored in SAS may create imprecisions far down from the decimal point that are not displayed when using typical number formats, but are detected by every comparison.

You can see this when compare displays the difference as1E-14 or something similar.

Either use the fuzz factor in compare (as @Reeza already suggested), or make use of the round() function when doing calculations that involve fractions.

ballardw
Super User

And the practical affect of a difference of

0.000000000000013840

is going to be what on your process?

 

 

Tom
Super User Tom
Super User

That is just one of the side effects of using binary computers to perform mathematicl operations. 

Since there are many numbers that cannot be stored exactly in the IEEE floating point format you need to take that into consideration.

 

Here is a simple example that uses the fact the one tenth cannot be stored exactly.

 

data _null_;
  one=1 ;
  do _n_=1 to 10 ;
     another_one + (1/10) ;
  end;
  diff = one - another_one ;
  put (_all_) (= best32. /  );
run;
one=1
another_one=1
diff=1.1102230246251E-16

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!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

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
  • 4 replies
  • 777 views
  • 1 like
  • 5 in conversation