Functions and CALL Routines |
Category: | Character |
Restriction: | Use with the COMPGED function |
Interaction: | When invoked by the %SYSCALL macro statement, CALL COMPCOST removes quotation marks from its arguments. For more information, see Using CALL Routines and the %SYSCALL Macro Statement. |
Syntax | |
Arguments | |
Details | |
Computing the Cost of Operations | |
Abbreviating Character Strings | |
Examples | |
See Also |
Syntax |
CALL COMPCOST(operation-1, value-1 <,operation-2, value-2 ...>); |
is a character constant, variable, or expression that specifies an operation that is performed by the COMPGED function.
is a numeric constant, variable, or expression that specifies the cost of the operation that is indicated by the preceding argument.
Restriction: | Must be an integer that ranges from -32767 to 32767, or a missing value |
Details |
Each argument that specifies an operation must have a value that is a character string. The character string corresponds to one of the terms that is used to denote an operation that the COMPGED function performs. See Computing the Generalized Edit Distance to view a table of operations that the COMPGED function uses.
The character strings that specify operations can be in uppercase, lowercase, or mixed case. Blanks are ignored. Each character string must end with an equal sign (=). Valid values for operations, and the default cost of the operations are listed in the following table.
If an operation does not appear in the call to the COMPCOST routine, or if the operation appears and is followed by a missing value, then that operation is assigned a default cost. A "very large" cost indicates a cost that is sufficiently large that the COMPGED function will not use the corresponding operation.
After your program calls the COMPCOST routine, the costs that are specified remain in effect until your program calls the COMPCOST routine again, or until the step that contains the call to COMPCOST terminates.
You can abbreviate character strings. That is, you can use the first one or more letters of a specific operation rather than use the entire term. You must, however, use as many letters as necessary to uniquely identify the term. For example, you can specify the INSERT= operation as "in=", and the REPLACE= operation as "r=". To specify the DELETE= or the DOUBLE= operation, you must use the first two letters because both DELETE= and DOUBLE= begin with "d". The character string must always end with an equal sign.
Examples |
The following example calls the COMPCOST routine to compute the generalized edit distance for the operations that are specified.
options pageno=1 nodate linesize=80 pagesize=60; data test; length String $8 Operation $40; if _n_ = 1 then call compcost('insert=',10,'DEL=',11,'r=', 12); input String Operation; GED=compged(string, 'baboon'); datalines; baboon match xbaboon insert babon delete baXoon replace ; proc print data=test label; label GED='Generalized Edit Distance'; var String Operation GED; run;
The following output shows the results.
Generalized Edit Distance Based on Operation
The SAS System 1 Generalized Edit Obs String Operation Distance 1 baboon match 0 2 xbaboon insert 10 3 babon delete 11 4 baXoon replace 12
See Also |
|
Copyright © 2011 by SAS Institute Inc., Cary, NC, USA. All rights reserved.