2つの文字列間の一般化編集距離を返します。
カテゴリ: | 文字 |
制限事項: | この関数は、I18Nレベル0準拠しており、SBCSデータ向けに設計されています。この関数をDBCSまたはMBCSデータの処理に使用しないでください。 |
数値定数、変数または式です。実際の一般化編集距離がcutoffの値よりも大きい場合、cutoffと等しい値が返されます。
COMPGED関数のアクションを変更できる文字列を指定します。次の1つ以上の文字を有効な修飾子として使用できます。
iまたはI | string–1およびstring–2の大文字と小文字を区別しません。 |
lまたはL | 値を比較する前にstring–1およびstring–2の先頭の空白を削除します。 |
nまたはN | n-literalであるすべての引数から引用符を削除し、string–1およびstring–2の大文字と小文字の区別をしません。 |
:(コロン) | string–1とstring–2の短い方の文字列の長さまたは1文字(どちらか大きい方)になるように長い方の文字列を切り捨てます。 |
演算
|
デフォルトコスト単位
|
演算の内容
|
---|---|---|
APPEND
|
50
|
出力文字列が入力文字列より長いとき、ポインタを移動せずに1文字を出力文字列の末尾に追加します。
|
BLANK
|
10
|
次の操作のいずれかを行います。
COMPCOST関数でBLANKのコストがゼロに設定されている場合、COMPGED関数は比較を行う前に、両方の文字列からすべてのスペース文字を削除します。
|
DELETE
|
100
|
出力文字列を変更せずにポインタの位置を1つ進めます。
|
DOUBLE
|
20
|
ポインタを移動せずに出力文字列の末尾に文字を追加します。
|
FDELETE
|
200
|
出力文字列が空のとき、出力文字を変更せずにポインタの位置を1つ進めます。
|
FINSERT
|
200
|
ポインタが第1位置にあるとき、ポインタを移動せずに1文字を出力文字列の末尾に追加します。
|
FREPLACE
|
200
|
ポインタが第1位置にあり、出力文字列が空のとき、出力文字列の末尾に1文字を追加し、ポインタの位置を1つ進めます。
|
INSERT
|
100
|
ポインタを移動せずに出力文字列の末尾に1文字を追加します。
|
MATCH
|
0
|
入力文字列のポインタ位置の文字をコピーして出力文字列の末尾に追加し、ポインタの位置を1つ進めます。
|
PUNCTUATION
|
30
|
次の操作のいずれかを行います。
COMPCOST関数でPUNCTUATIONのコストがゼロに設定されている場合、COMPGED関数は比較を行う前に、両方の文字列からすべての句読文字を削除します。
|
REPLACE
|
100
|
出力文字列の末尾に1文字を追加し、ポインタの位置を1つ進めます。
|
SINGLE
|
20
|
ポインタ位置の文字が入力文字列の続く文字と同じとき、出力文字列を変更せずにポインタの位置を1つ進めます。
|
SWAP
|
20
|
入力文字列からポインタに続く文字をコピーし、出力文字列に追加します。次に、入力文字列からポインタ位置の文字をコピーし、出力文字列に追加します。ポインタ位置を2つ進めます。
|
TRUNCATE
|
10
|
出力文字列が入力文字列より短いとき、出力文字を変更せずにポインタの位置を1つ進めます。
|
data test; infile datalines missover; input String1 $char8. +1 String2 $char8. +1 Operation $40.; GED=compged(string1, string2); datalines; baboon baboon match baXboon baboon insert baoon baboon delete baXoon baboon replace baboonX baboon append baboo baboon truncate babboon baboon double babon baboon single baobon baboon swap bab oon baboon blank bab,oon baboon punctuation bXaoon baboon insert+delete bXaYoon baboon insert+replace bXoon baboon delete+replace Xbaboon baboon finsert aboon baboon trick question: swap+delete Xaboon baboon freplace axoon baboon fdelete+replace axoo baboon fdelete+replace+truncate axon baboon fdelete+replace+single baby baboon replace+truncate*2 balloon baboon replace+insert ; proc print data=test label; label GED='Generalized Edit Distance'; var String1 String2 GED Operation; run;