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.


SommaireProgrammation sur SAS BASEChaîne de caractères (9)
précédent sommaire suivant
 

À 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;

Mis à jour le 16 mars 2008 fafabzh6

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;

Mis à jour le 16 mars 2008 fafabzh6

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;

Mis à jour le 16 mars 2008 fafabzh6

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;

Mis à jour le 16 mars 2008 fafabzh6

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;

Mis à jour le 16 mars 2008 fafabzh6

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;

Mis à jour le 16 mars 2008 fafabzh6

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;

Mis à jour le 15 novembre 2011 bahraoui

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;
Résultats :

A=7

B=0

Mis à jour le 15 novembre 2011 sas

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;
Résultat :

  • X=ALLO SUPPORT
  • Y=ALLO SUPPORT

Documentation : Using the PROPCASE function

Mis à jour le 7 novembre 2011 sas

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 ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les 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 © 2020 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.