Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Débutez
Débutez Forum concentrant les premières questions que l'on se pose en tant que débutant
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 14/06/2011, 09h50   #1
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
Par défaut probleme condition if (bis)

Bonjour


Code :
1
2
3
4
5
6
7
DATA Popu4;
SET mylib.SOUCHE ( keep= SUB_ID SOUCHE2 Str_CH);
IF (SOUCHE2="fleur" AND Str_CH="Y") then popu4=1;
IF Str_CH=" " then popu4=" ";
else popu4=0;
 
run;
voila mon code
le probleme c est que
Code :
IF Str_CH=" " then popu4=" "
n est pas prise en compte j ai des 0
et je comprend pas
Merci d avance pour votre aide .
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 09h53   #2
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
Bonjour,
les valeurs manquante pour les variables de type numérique est le point (.)

essaies sa :

Code :
1
2
3
4
5
6
7
8
9
 
 
DATA Popu4;
SET mylib.SOUCHE ( keep= SUB_ID SOUCHE2 Str_CH);
IF (SOUCHE2="fleur" AND Str_CH="Y") then popu4=1;
IF Str_CH=" " then popu4=.; /* valeur manquante */
else popu4=0;
 
run;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 10h04   #3
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
deja fait et la c est la condition
Code :
IF (SOUCHE2="fleur" AND Str_CH="Y") then popu4=1
qui n est pas prise en compte
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 10h23   #4
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
Citation:
Envoyé par asty69 Voir le message
deja fait et la c est la condition
Code :
IF (SOUCHE2="fleur" AND Str_CH="Y") then popu4=1
qui n est pas prise en compte
si la condition
Code :
SOUCHE2="fleur" AND Str_CH="Y"
n'est pas satisfaite c'est claire qu'il ne te renvoie pas de résultat.

si tu fais :
Code :
1
2
3
4
5
6
7
 
DATA Popu4 comb;
SET mylib.SOUCHE ( keep= SUB_ID SOUCHE2 Str_CH);
   IF (SOUCHE2="fleur" AND Str_CH="Y") then output comb;
   else output popu4;
 
run;
- puis il te dit quoi dans la LOG?
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 10h54   #5
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
Citation:
Envoyé par s_a_m Voir le message
si la condition
Code :
SOUCHE2="fleur" AND Str_CH="Y"
n'est pas satisfaite c'est claire qu'il ne te renvoie pas de résultat.

si tu fais :
Code :
1
2
3
4
5
6
7
 
DATA Popu4 comb;
SET mylib.SOUCHE ( keep= SUB_ID SOUCHE2 Str_CH);
   IF (SOUCHE2="fleur" AND Str_CH="Y") then output comb;
   else output popu4;
 
run;
- puis il te dit quoi dans la LOG?
Rien
j ai aucune erreur de log c est dans le resultat le probleme
qd je veux rajouter pour une absence de resultat une abscence de popu et bien la condition marquant la presence de population est zappé.
si je ne met pas cette condition j ai le bon resultat mais des 0 partout .

qd je tape ton dernier code tout j ai les 2 data qui se forment
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 11h25   #6
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
oups, c'est normal qu'il te donnera des ZEROs partout.
car à la fin t'as réinitialisé ta variable popu4 à ZERO;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/06/2011, 12h58   #7
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
DATA souche;
length popu4 3;
INFILE cards  missover ;
input Str_CH $1  	SOUCHE2 $ ;
cards;
Y fleur
Y fleur
A fleur
B arbre
C fleur
D rose
A arbre
  fleur
Y fleur
Y arbre
  rose     
;
run;
 
DATA Popu4;
 
SET work.SOUCHE ( keep=  SOUCHE2 Str_CH);
 
  IF SOUCHE2="fleur" AND Str_CH="Y" then popu4=1;else popu4=0;
  IF missing(Str_CH) then popu4=. ;
  *IF Str_CH="" then popu4=. ; /*cette ligne donne le même résultat que la fonction missing du (SASV9) */
run;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 13h30   #8
Membre à l'essai
 
Inscription : novembre 2009
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 107
Points : 20
Points : 20
merci
asty69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h07.


 
 
 
 
Partenaires

Hébergement Web