Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2011, 10h56   #1
Invité de passage
 
Inscription : juin 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 2
Points : 0
Points : 0
Par défaut Manipulation chaine de caractère

Bonjour à tous,

Je coince sur un programme sas à réaliser,
en effet j'ai une table avec plusieurs variables,
une variable résultat et une variable detection
J'aimerai, prendre la colonne « resultat », et dans SAS, couper le premier caractère
Si c’est un « < », il faut que j'aille dans la colonne « detection » codée en oui/non :
-Si « oui », la variable résultat correspond à une autre variable de ma table(peu importe laquelle),
-Si « non » , , la variable résultat correspond également à une variable différente de ma table(peu importe laquelle).
Je ne sais pas si c'est très clair,

Merci d'avance si vous avez des éléments de réponses.
fr4k4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 12h56   #2
Membre expérimenté
 
Inscription : avril 2009
Messages : 537
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 537
Points : 540
Points : 540
Ouais non ce n'est pas clair.

Envoie un exemple.
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 13h46   #3
Membre habitué
 
Femme Géraldine CADE DESCHAMPS
Support Clients SAS (France et Europe)
Inscription : février 2010
Messages : 62
Détails du profil
Informations personnelles :
Nom : Femme Géraldine CADE DESCHAMPS
Localisation : France

Informations professionnelles :
Activité : Support Clients SAS (France et Europe)
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 62
Points : 139
Points : 139
Bonjour,

SUBSTR permet la sélection de caractères dans une variable selon leur position. Aussi je propose ceci, si j'ai bien compris la questions :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DATA exemple;
input resultat $ detection $ prenom $ nom $ ;
cards ;
<123 oui Azalée Azerty
>456 non Bertille Bwxc
<789 non Célia Cvbn
;
run ;
 
DATA Essai ;
SET exemple ;
 
SELECT ;
  when (substr (resultat, 1, 1)='<' AND compress(lowcase(detection))='oui') resultat=Prenom ;
  when (substr (resultat, 1, 1)='<' AND compress(lowcase(detection))='non') resultat=nom ;
  otherwise ;
end ;
run ;
Cordialement,
Géraldine Cade-Deschamps
Support Clients SAS
Géraldine_Cade_SAS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 13h52   #4
Invité de passage
 
Inscription : juin 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 2
Points : 0
Points : 0
Je pense que c'est exactement cela qu'il me faut pour résoudre mon problème.

Merci beaucoup pour votre aide,

Bien cordialement.

Pierre
fr4k4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 14h40   #5
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
D'ailleurs on pourrait remplacer

Citation:
SELECT ;
when (substr (resultat, 1, 1)='<' AND compress(lowcase(detection))='oui') resultat=Prenom ;
when (substr (resultat, 1, 1)='<' AND compress(lowcase(detection))='non') resultat=nom ;
otherwise ;
par


Citation:
SELECT ;
when (first (resultat)='<' AND compress(lowcase(detection))='oui') resultat=Prenom ;
when (first (resultat)='<' AND compress(lowcase(detection))='non') resultat=nom ;
otherwise ;

ou par

Citation:
SELECT ;
when (resultat=:'<' AND compress(lowcase(detection))='oui') resultat=Prenom ;
when (resultat=:'<' AND compress(lowcase(detection))='non') resultat=nom ;
otherwise ;
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h23.


 
 
 
 
Partenaires

Hébergement Web