09-05-2014 02:14 PM
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!
09-05-2014 02:39 PM
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.
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*/