TRANSLATE Function

Replaces specific characters in a character string.

Category: Character
Restriction: I18N Level 0 functions are designed for use with Single Byte Character Sets (SBCS) only.
Tip: DBCS equivalent function is KTRANSLATE.
See: TRANSLATE Function: Windows in SAS Companion for Windows
TRANSLATE Function: UNIX in SAS Companion for UNIX Environments
TRANSLATE Function: z/OS in SAS Companion for z/OS

Syntax

TRANSLATE(source,to-1,from-1<,…to-n,from-n> )

Required Arguments

source

specifies a character constant, variable, or expression that contains the original character string.

to

specifies the characters that you want TRANSLATE to use as substitutes.

from

specifies the characters that you want TRANSLATE to replace.

Operating Environment Information: You must have pairs of to and from arguments on some operating environments. On other operating environments, a segment of the collating sequence replaces null from arguments. See the SAS documentation for your operating environment for more information.
Interaction Values of to and from correspond on a character-by-character basis; TRANSLATE changes the first character of from to the first character of to, and so on. If to has fewer characters than from, TRANSLATE changes the extra from characters to blanks. If to has more characters than from, TRANSLATE ignores the extra to characters.

Details

In a DATA step, if the TRANSLATE function returns a value to a variable that has not previously been assigned a length, then that variable is given the length of the first argument.
The maximum number of pairs of to and from arguments that TRANSLATE accepts depends on the operating environment you use to run SAS. There is no functional difference between using several pairs of short arguments, or fewer pairs of longer arguments.

Comparisons

The TRANWRD function differs from TRANSLATE in that it scans for words (or patterns of characters) and replaces those words with a second word (or pattern of characters).

Example

The following SAS statements produce this result.
SAS Statement
Result
x=translate('XYZW','AB','VW');
put x;
 
XYZB

See Also

Functions: