
Remplacer un mot par un autre : la fonction TRANWRD
février 10, 2009La fonction TRANWRD (entendez par là Translate Word) de SAS sert à remplacer un mot par un autre. Quelle est la syntaxe de base ? Quelles sont ses particularités ? A quoi faut-il faire attention lorsqu’on l’utilise ?
1. Le test
data one; x='AbcDeffeDGhiDefDEF'; y1=tranwrd(x,'Def','ZZ'); length y2 $18; y2=tranwrd(x,'Def','ZZZZ'); run;
Voir le data set ONE :
x y1 y2 AbcDeffeDGhiDefDEF AbcZZfeDGhiZZDEF AbcZZZZfeDGhiZZZZD
2. La syntaxe de base
La fonction TRANWRD est composée de 3 paramètres :
- Le texte d’origine : une variable caractère ou une chaîne de caractères entre guillemets.
- Le texte à remplacer
- Le nouveau texte
Note : Les paramètres caractères d’origine et nouveau texte sont inversés dans la fonction TRANSLATE.
3. Les particularités de la fonction TRANWRD
Remplacer un mot : dans l’exemple, ce ne sont par les lettres D, e et f qui sont remplacées mais bien le mot ‘Def’. C’est pour cela que le texte ‘feD’ reste intacte.
Sensible à la case : dans l’exemple, le texte ‘DEF’ n’est pas remplacé car ‘E’ et ‘F’ sont en majuscule. Seul le texte ‘Def’ est changé.
Un nouveau mot de longueur différente : dans l’exemple,
- Un texte plus court : la variable Y1 voit le mot ‘Def’ composé de trois lettres remplacé par le mot plus court ‘ZZ’ sans blanc à la suite
- Un texte plus long : le mot ‘Def’ remplacé par un mot plus long ‘ZZZZ’ et donne la variable Y2. Le texte qui suit est tout simplement décalé pour donner la place nécessaire.
4. Redéfinir les longueurs si nécessaire
Si votre nouveau texte est plus long que votre ancien texte, il est important de vérifier que la longueur de la variable est suffisante pour que l’intégralité de la chaîne de caractères soit conservée. Ici, la variable Y2 a une longueur de 18. Deux ‘Def’ sont replacés en ‘ZZZZ’. Il manque la place à deux caractères. Les E et F de fin sont tronqués.
En savoir plus : TRANWRD function (SAS Online Doc)
Un exemple d’utilisation de la fonction TRANWRD : « Afficher 7h30 sous la forme 07:30« .
jenesa.campbell5519@gmail.com
[…] Remplacer un mot par un autre : la fonction TRANWRD […]