FAQ SASConsultez toutes les FAQ
Nombre d'auteurs : 13, nombre de questions : 308, dernière mise à jour : 5 avril 2016 Ajouter une question
Cette F.A.Q., qui traite de tout type de questions portant sur l'outil SAS, a été réalisée à partir des contributions des membres des forums sas de developpez.com en vue de répondre à des questions fréquemment posées par les utilisateurs et grâce à SAS France qui a bien voulu nous donner accès à ses sources.
Si vous désirez contribuer à l'amélioration de cette F.A.Q., vous pouvez participer au billet de participation à l'enrichissement de la faq SAS , ou contacter le responsable SAS , ou contacter un des responsables de l'équipe Business Intelligence .
Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.
L'équipe SAS de developpez.com remercie les contributeurs actuels : ash_rmy , bahraoui , datametric , fafabzh6 , Fleur-Anne.Blain , green_fr , oncle_pete , raf64flo , rastoix , s_a_m et steelspirit .
L'équipe SAS de developpez.com remercie aussi claudeLeloup et jacques_jean pour leurs relectures attentives de la F.A.Q. dans le but de chasser les fautes d'orthographes.
- Comment convertir une variable de type caractère en variable de type numérique ?
- Comment concaténer deux chaînes de caractères ?
- Comment supprimer les blancs d'une chaîne de caractères ?
- Comment mettre en majuscules une chaîne de caractères ?
- Comment mettre en minuscules une chaîne de caractères ?
- Comment extraire une partie de chaîne de caractères ?
- Comment stocker une variable en la forçant avec des zéros devant ?
- En SAS9, comment extraire la position d'un mot d'une chaîne de caractères sans être sensible à la casse ?
- Dans une chaîne de caractères, comment mettre la première lettre de chaque mot en majuscule et les autres lettres en minuscule ?
À l'aide de la fonction "input" vous pouvez convertir une variable de type caractère en variable numérique.
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | DATA base; INPUT var1$ var2; CARDS; 10 5 3 8 ; DATA base2; SET base; var3=input(var1,3.); RUN; |
La fonction !! permet ce genre de manipulation comme vous le montre l'exemple suivant :
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | DATA base; INPUT var1$ var2$; cards ; Hello world ; DATA base2; SET base; var3=var1!!var2; RUN; |
La fonction "compress" permet ce genre de manipulation :
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | DATA base; INPUT var1$ var2$; cards ; Hello world ; RUN; DATA base2; SET base; var3=var1!!var2; RUN; DATA base3; SET base2; var4=compress(var3); RUN; |
La fonction "upcase" permet cette manipulation comme vous pouvez le voir dans l'exemple suivant :
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | DATA base; INPUT var1$ var2$; cards ; Hello world ; RUN; DATA base2; SET base; var3=var1!!var2; RUN; DATA base3; SET base2; var4=UPCASE(var3); RUN; |
La fonction "lowcase" permet la mise en minuscules d'une chaîne de caractères.
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | DATA base; INPUT var1$; cards ; HEllO ; RUN; DATA base2; SET base; var2=LOWCASE(var1); RUN; |
La fonction "substr" permet l'extraction d'une partie d'une chaîne de caractères, ces paramètres sont les suivants : substr(maChaine,debutExtraction,longueurExtraction).
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | DATA base; INPUT var1$; cards ; HEllO ; RUN; DATA base2; SET base; var2=SUBSTR(var1,2,3); RUN; |
Par exemple disposant de valeur '123456' censée être stockée sur 9 caractères on désire avoir '000123456'.
Pour résoudre ce problème, on peut utiliser le format ZX., où X désigne le nombre total de chiffres avec les zéros.
Code sas : | Sélectionner tout |
1 2 3 4 5 | DATA t; i=123456; format i_bis Z10.; i_bis=i; run; |
Vous devez utiliser la fonction FIND avec l'option « i ».
La fonction FIND cherche la première occurrence du mot spécifié en paramètre et retourne sa position. L'exemple ci-dessous compare les résultats obtenus avec la fonction FIND et la fonction INDEX (présente depuis la V8). La fonction index étant elle sensible à la casse.
Exemple :
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | data _null_; /* cherche le mot trouve, insensible à la casse */ A=find('où se trouve le mot recherché','TROUVE','i'); put A=; /* écrit la valeur de A */ /* cherche le mot trouve en majuscule uniquement */ B=index('où se trouve le mot recherché','TROUVE'); put B=; /* écrit la valeur de B */ run; |
A=7
B=0
Il faut utiliser la fonction PROPCASE.
Exemple :
Code sas : | Sélectionner tout |
1 2 3 4 5 | Data Faq ; X= 'ALLO SUPPORT'; Y=propcase(X); Put X= Y= ; Run; |
- X=ALLO SUPPORT
- Y=ALLO SUPPORT
Documentation : Using the PROPCASE function
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.