Help using Base SAS procedures

Compare Function

Reply
Occasional Contributor
Posts: 19

Compare Function

Hi all,

I'm using the compare function in a data step to compare the values in two columns.  The length of the character string is 30 characters and the compare function says there is a difference in the 31st character.  I've trimmed the two variables and don't know why there is a difference.  The two cells say the same thing.  I've copied them over to excel and set them equal to one another and they check out.  All the other observations are matching as well.  Any help will be appreciated!

Regular Contributor
Posts: 233

Re: Compare Function

Posted in reply to RobertHuey
Occasional Contributor
Posts: 19

Re: Compare Function

Thanks, Hima but I was using the compare function and not the PROC.  See below.

 

result= compare(NamesFromFile, MasterNames)


Respected Advisor
Posts: 3,156

Re: Compare Function

Posted in reply to RobertHuey

You may have some invisible-unprinted character in your variables, such as 'tab'. The best way to tell the difference is to see what machine sees: the hex value, you can try to fiddle with some options, but that would depend on your luck.

data test;

     input (v1 v2) ($char4.);

     put v1=hex16. / v2=hex16.;

     rc1=compare(v1,v2); /*v1 is tailed by a 'blank' while v2 has a 'tab'*/

     rc2=compare(trim(v1),trim(v2));/*trim will only take off the blank, so it wouldn't work*/

     rc3=compare(trim(v1),trim(v2),':');/*with the modifier, it only compares the shortest char, which is 3, so now it works*/

     cards;

aaa aaa   

;

Regards,

Haikuo

Occasional Contributor
Posts: 19

Re: Compare Function


You're right.  The modifier worked! Thanks!

Respected Advisor
Posts: 3,156

Re: Compare Function

Posted in reply to RobertHuey

if you only want to compare the PRINTABLE part of your variable, use compress();

results=compare(compress(v1,,'kw'),compress(v2,,'kw'));

Haikuo

Ask a Question
Discussion stats
  • 5 replies
  • 959 views
  • 2 likes
  • 3 in conversation