BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Sunboyss30
Obsidian | Level 7

Hi,

 

I am trying to test two datasets to make sure both are same. I am using OUTNOEQUAL option to not report the matching values in the output. But somehow its still showing up. Any leads?

 

Attached is the outuput i am getting.

 

Regards,

 

1 ACCEPTED SOLUTION

Accepted Solutions
RW9
Diamond | Level 26 RW9
Diamond | Level 26

This is because of the way numbers are stored on the machine.  What you are seeing is one or the other (or possibly both) have a tiny fraction, for example:
123.0000000000000001

versus

123.00

 

You don't necessarily see this directly in the dataset and is usually the result of mathematical operations where the result is not rounded/processed properly.

 

Try fuzz=

as given in this post:

https://communities.sas.com/t5/SAS-Procedures/Proc-compare-numeric-decimal-rounding-up-in-the-Base-d...

 

And if your interested in it the full explanation:

http://documentation.sas.com/?docsetId=lrcon&docsetTarget=p0ji1unv6thm0dn1gp4t01a1u0g6.htm&docsetVer...

View solution in original post

6 REPLIES 6
PeterClemmensen
Tourmaline | Level 20

if you simply want to test if two data sets are exactly the same, then use PROC COMPARE and the generated &sysinfo. macro variable. The value of &sysinfo. will be zero for matching data sets.

RW9
Diamond | Level 26 RW9
Diamond | Level 26

This is because of the way numbers are stored on the machine.  What you are seeing is one or the other (or possibly both) have a tiny fraction, for example:
123.0000000000000001

versus

123.00

 

You don't necessarily see this directly in the dataset and is usually the result of mathematical operations where the result is not rounded/processed properly.

 

Try fuzz=

as given in this post:

https://communities.sas.com/t5/SAS-Procedures/Proc-compare-numeric-decimal-rounding-up-in-the-Base-d...

 

And if your interested in it the full explanation:

http://documentation.sas.com/?docsetId=lrcon&docsetTarget=p0ji1unv6thm0dn1gp4t01a1u0g6.htm&docsetVer...

Sunboyss30
Obsidian | Level 7

Thanks a lot RW9. it worked perfectly.

 

Many thanks again !

Sunboyss30
Obsidian | Level 7

Hi,

 

Also to check for Date values. I have two variables defined as Date9. and Datetime20. which obviously give difference. But is there any way to match these. Do i need to convert the format of any of the variable to match it. Or any option in Proc compare is there?

 

Please suggest.

 

Regards,

RW9
Diamond | Level 26 RW9
Diamond | Level 26

Its a good idea to start a new thread for new questions

http://documentation.sas.com/?docsetId=proc&docsetTarget=p1l5iwaf47ma83n1euxxp10g8xh5.htm&docsetVers...

I don think there is an option for that.  Dates and datetimes are actually numbers, number of days or seconds since a certain point in time, hence they are very different.  You can only compare like for like.

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register 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
  • 6 replies
  • 3264 views
  • 0 likes
  • 3 in conversation