## Compare Function

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

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)

Posts: 3,167

## Re: Compare Function

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!

Posts: 3,167