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!
Thanks, Hima but I was using the compare function and not the PROC. See below.
result= compare(NamesFromFile, MasterNames)
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
You're right. The modifier worked! Thanks!
if you only want to compare the PRINTABLE part of your variable, use compress();
results=compare(compress(v1,,'kw'),compress(v2,,'kw'));
Haikuo
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.
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.