Bonjour,
A partir d’une variable texte, j’ai besoin d’extraire les premières lettres de chaque mot de la chaine de caractères. Exemples : à partir de
variable1
Il fait beau
Toto fait ses devoirs
je souhaite obtenir
variable2
IFB
TFSD
Existe-t-il une fonction SAS permettant de faire cette sélection ? Si non, avez-vous une idée du codage et des fonctions à utiliser pour obtenir le résultat attendu ?
Merci d’avance.
Bonjour.
Il n’y a pas de fonction automatique dans SAS, à ma connaissance. On peut cependant parcourir les mots d’une chaîne de caractères avec la fonction SCAN : SCAN(chaine, n°mot). Avec une boucle, on balaie la chaîne jusqu’au dernier mot. A chacun, on récupère la 1e lettre avec un SUBSTR. On concatène ces 1ères lettres avec !! en éliminant les espaces (COMPRESS).
Voici un exemple de code :
DATA work.test ; INPUT variable1 & :$30. ; DATALINES ; Il fait beau Toto fait ses devoirs ; RUN ; DATA work.test ; SET work.test ; LENGTH debutsMots $ 10 ; numMot = 1 ; debutsMots = "" ; DO WHILE (SCAN(variable1,numMot) NE "") ; debutsMots=COMPRESS(debutsMots!!SUBSTR(SCAN(variable1,numMot),1,1)) ; numMot = numMot + 1 ; /* mot suivant */ END ; RUN ;