Hello,
I have two questions about COMPARE function.
1. I am looking at this link (https://go.documentation.sas.com/?docsetId=lefunctionsref&docsetTarget=p0iaa25pnhl59ln1v4yrympngpic....) and I am not clear about the definition of 'name literal.' Does anyone have more examples that explain the term?
n or N |
removes quotation marks from any argument that is a name literal and ignores the case of string-1 and string-2. A name literal is a name token that is expressed as a string within quotation marks, followed by the uppercase or lowercase letter n. Name literals enable you to use special characters (including blanks) that are not otherwise allowed in SAS data set or variable names. For COMPARE to recognize a string as a name literal, the first character must be a quotation mark. |
2. Example 1 the link has the code below and one of the sample string comparison,
'$12'n $12
has three different cases to show the result of COMPARE. I am not clear how the result with a modifier 'nl' (#14 in the table below)did not get the 0 result.
Thanks!
data test;
infile datalines missover;
input string1 $char8. string2 $char8. modifiers $char8.;
result=compare(string1, string2, modifiers);
datalines;
1234567812345678
123 abc
abc abx
xyz abcdef
aBc abc
aBc AbC i
abc abc
abc abc l
abc abx
abc abx l
ABC 'abc'n
ABC 'abc'n n
'$12'n $12 n
'$12'n $12 nl
'$12'n $12 ln
;
proc print data=test;
run;
Results of Comparing Two Strings Using the COMPARE Function