Functions and CALL Routines |
Category: | Character |
Restriction: | I18N Level 0 |
Syntax | |
Arguments | |
Details | |
Comparisons | |
Examples | |
See Also |
Syntax |
COMPLEV(string-1, string-2 <,cutoff> <,modifiers>) |
specifies a numeric constant, variable, or expression. If the actual Levenshtein edit distance is greater than the value of cutoff, the value that is returned is equal to the value of cutoff.
Tip: | Using a small value of cutoff improves the efficiency of COMPLEV if the values of string-1 and string-2 are long. |
specifies a character string that can modify the action of the COMPLEV function. You can use one or more of the following characters as a valid modifier:
TIP: | COMPLEV ignores blanks that are used as modifiers. |
Details |
The order in which the modifiers appear in the COMPLEV function is relevant.
"LN" first removes leading blanks from each string and then removes quotation marks from n-literals.
"NL" first removes quotation marks from n-literals and then removes leading blanks from each string.
The COMPLEV function ignores trailing blanks.
COMPLEV returns the Levenshtein edit distance between string-1 and string-2. Levenshtein edit distance is the number of insertions, deletions, or replacements of single characters that are required to convert one string to the other. Levenshtein edit distance is symmetric. That is, COMPLEV(string-1,string-2) is the same as COMPLEV(string-2,string-1) .
Comparisons |
The Levenshtein edit distance that is computed by COMPLEV is a special case of the generalized edit distance that is computed by COMPGED.
COMPLEV executes much more quickly than COMPGED.
Examples |
The following example compares two strings by computing the Levenshtein edit distance.
options pageno=1 nodate ls=80 ps=60; data test; infile datalines missover; input string1 $char8. string2 $char8. modifiers $char8.; result=complev(string1, string2, modifiers); datalines; 1234567812345678 abc abxc ac abc aXc abc aXbZc abc aXYZc abc WaXbYcZ abc XYZ abcdef aBc abc aBc AbC i abc abc abc abc l AxC 'abc'n AxC 'abc'n n ; proc print data=test; run;
The following output shows the results.
Results of Comparing Two Strings by Computing the Levenshtein Edit Distance
The SAS System 1 Obs string1 string2 modifiers result 1 12345678 12345678 0 2 abc abxc 1 3 ac abc 1 4 aXc abc 1 5 aXbZc abc 2 6 aXYZc abc 3 7 WaXbYcZ abc 4 8 XYZ abcdef 6 9 aBc abc 1 10 aBc AbC i 0 11 abc abc 2 12 abc abc l 0 13 AxC 'abc'n 6 14 AxC 'abc'n n 1
See Also |
|
Copyright © 2011 by SAS Institute Inc., Cary, NC, USA. All rights reserved.