Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
probleme pour afficher les donnees
4 participants
Page 1 sur 1
probleme pour afficher les donnees
Bonjour
J'ai ecris un programme SAS qui me permet , a partir de 2 variables de mon tableau de donnees , de creer 2 autre variables.
Lorsque je lance mon programme dans la fenetre "journal" je n'ai aucune erreur , dans ma table de donnees je vois bien les 2 nouvelles colonne qui se sont ajoutées mais pour l'une des deux la colonne n'est pas remplie....
quelqu'un sait il d'ou vient le probleme???? MERCI
PS: je n'ai aucune erreur de syntaxe
J'ai ecris un programme SAS qui me permet , a partir de 2 variables de mon tableau de donnees , de creer 2 autre variables.
Lorsque je lance mon programme dans la fenetre "journal" je n'ai aucune erreur , dans ma table de donnees je vois bien les 2 nouvelles colonne qui se sont ajoutées mais pour l'une des deux la colonne n'est pas remplie....
quelqu'un sait il d'ou vient le probleme???? MERCI
PS: je n'ai aucune erreur de syntaxe
ganod- Nombre de messages : 39
Date d'inscription : 14/07/2009
Re: probleme pour afficher les donnees
c'est que ton programme est mal écrit... montre le
niaboc- Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008
Re: probleme pour afficher les donnees
comment fait on pour ajouter une piece jointe?
ganod- Nombre de messages : 39
Date d'inscription : 14/07/2009
Re: probleme pour afficher les donnees
tu peux faire un copier coller de ton programme...
niaboc- Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008
Re: probleme pour afficher les donnees
[size=3]
%let[/size] fic=_ens;
DATA mig1&fic;
SET mig1&fic;
IF statut="case" & country="all-aut" THEN statut_pays="case_all_aut";
IF statut="control" & country="all-aut" THEN statut_pays="control_all_aut";
IF statut="case" & country="fr" THEN statut_pays="case_fr";
IF statut="control" & country="fr" THEN statut_pays="control_fr";
IF statut="case" & country="it" THEN statut_pays="case_it";
IF statut="control" & country="it" THEN statut_pays="control_it";
IF statut="case" & country="lux" THEN statut_pays="case_lux";
IF statut="control" & country="lux" THEN statut_pays="control_lux";
IF statut="case" & country="sp" THEN statut_pays="case_sp";
IF statut="control" & country="sp" THEN statut_pays="control_sp";
run;
DATA mig1&fic;
SET mig1&fic;
IF diagnostic="headache" & country="UK" THEN diag_mig_pays="headache_UK";
IF diagnostic="migraine" & country="UK" THEN diag_mig_pays="migraine_UK";
IF diagnostic="chronic daily headache" & country="UK" THEN diag_mig_pays="chronic daily headache_UK";
IF diagnostic="chronic daily headache + migraine" & country="UK" THEN diag_mig_pays="chronic daily headache + migraine_UK";
IF diag_mig=1 & country="all-aut" THEN diag_mig_pays="others headaches_all-aut";
IF diag_mig=2 & country="all-aut" THEN diag_mig_pays="migraine_all-aut";
IF diag_mig=3 & country="all-aut" THEN diag_mig_pays="chronic daily headaches_all-aut";IF diag_mig=1 & country="fr" THEN diag_mig_pays="others headaches_fr";
IF diag_mig=2 & country="fr" THEN diag_mig_pays="migraine_fr";
IF diag_mig=3 & country="fr" THEN diag_mig_pays="chronic daily headaches_fr";
IF diag_mig=1 & country="it" THEN diag_mig_pays="others headaches_it";
IF diag_mig=2 & country="it" THEN diag_mig_pays="migraine_it";
IF diag_mig=3 & country="it" THEN diag_mig_pays="chronic daily headaches_it";
IF diag_mig=1 & country="lux" THEN diag_mig_pays="others headaches_lux";
IF diag_mig=2 & country="lux" THEN diag_mig_pays="migraine_lux";
IF diag_mig=3 & country="lux" THEN diag_mig_pays="chronic daily headaches_lux";
IF diag_mig=1 & country="sp" THEN diag_mig_pays="others headaches_sp";
IF diag_mig=2 & country="sp" THEN diag_mig_pays="migraine_sp";
IF diag_mig=3 & country="sp" THEN diag_mig_pays="chronic daily headaches_sp";
IF diag_mig=. THEN diag_mig_pays=" ";
IF diagnostic=" " THEN diag_mig_pays=" ";
run;
%let[/size] fic=_ens;
DATA mig1&fic;
SET mig1&fic;
IF statut="case" & country="all-aut" THEN statut_pays="case_all_aut";
IF statut="control" & country="all-aut" THEN statut_pays="control_all_aut";
IF statut="case" & country="fr" THEN statut_pays="case_fr";
IF statut="control" & country="fr" THEN statut_pays="control_fr";
IF statut="case" & country="it" THEN statut_pays="case_it";
IF statut="control" & country="it" THEN statut_pays="control_it";
IF statut="case" & country="lux" THEN statut_pays="case_lux";
IF statut="control" & country="lux" THEN statut_pays="control_lux";
IF statut="case" & country="sp" THEN statut_pays="case_sp";
IF statut="control" & country="sp" THEN statut_pays="control_sp";
run;
DATA mig1&fic;
SET mig1&fic;
IF diagnostic="headache" & country="UK" THEN diag_mig_pays="headache_UK";
IF diagnostic="migraine" & country="UK" THEN diag_mig_pays="migraine_UK";
IF diagnostic="chronic daily headache" & country="UK" THEN diag_mig_pays="chronic daily headache_UK";
IF diagnostic="chronic daily headache + migraine" & country="UK" THEN diag_mig_pays="chronic daily headache + migraine_UK";
IF diag_mig=1 & country="all-aut" THEN diag_mig_pays="others headaches_all-aut";
IF diag_mig=2 & country="all-aut" THEN diag_mig_pays="migraine_all-aut";
IF diag_mig=3 & country="all-aut" THEN diag_mig_pays="chronic daily headaches_all-aut";IF diag_mig=1 & country="fr" THEN diag_mig_pays="others headaches_fr";
IF diag_mig=2 & country="fr" THEN diag_mig_pays="migraine_fr";
IF diag_mig=3 & country="fr" THEN diag_mig_pays="chronic daily headaches_fr";
IF diag_mig=1 & country="it" THEN diag_mig_pays="others headaches_it";
IF diag_mig=2 & country="it" THEN diag_mig_pays="migraine_it";
IF diag_mig=3 & country="it" THEN diag_mig_pays="chronic daily headaches_it";
IF diag_mig=1 & country="lux" THEN diag_mig_pays="others headaches_lux";
IF diag_mig=2 & country="lux" THEN diag_mig_pays="migraine_lux";
IF diag_mig=3 & country="lux" THEN diag_mig_pays="chronic daily headaches_lux";
IF diag_mig=1 & country="sp" THEN diag_mig_pays="others headaches_sp";
IF diag_mig=2 & country="sp" THEN diag_mig_pays="migraine_sp";
IF diag_mig=3 & country="sp" THEN diag_mig_pays="chronic daily headaches_sp";
IF diag_mig=. THEN diag_mig_pays=" ";
IF diagnostic=" " THEN diag_mig_pays=" ";
run;
ganod- Nombre de messages : 39
Date d'inscription : 14/07/2009
Re: probleme pour afficher les donnees
Bonjour,
laquelle des deux n'est pas remplie?
Cdlt
laquelle des deux n'est pas remplie?
Cdlt
flongo- Nombre de messages : 12
Date d'inscription : 17/07/2009
Re: probleme pour afficher les donnees
c'est la colonne pour la variable diag_mig_pays qui n'est pas remplie
ganod- Nombre de messages : 39
Date d'inscription : 14/07/2009
Re: probleme pour afficher les donnees
As tu essayé de changer le & par and?
flongo- Nombre de messages : 12
Date d'inscription : 17/07/2009
Re: probleme pour afficher les donnees
oui j'ai essayé et ca ne fonctionne toujours pas
ganod- Nombre de messages : 39
Date d'inscription : 14/07/2009
Re: probleme pour afficher les donnees
es tu sur que ta variable diag_mig est numérique?
ça pourra t'aider ici de savoir que tu peux concaténer des variables facilement:
exemple :
data table;
set table;
nouvellevariable=trim(left(var1))||' '||trim(left(var2));
run;
ça pourra t'aider ici de savoir que tu peux concaténer des variables facilement:
exemple :
data table;
set table;
nouvellevariable=trim(left(var1))||' '||trim(left(var2));
run;
niaboc- Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008
Re: probleme pour afficher les donnees
je suis sure que ma variable diag_mig est numerique (j'ai verifié par un clic droit "attribution de colonne")
ganod- Nombre de messages : 39
Date d'inscription : 14/07/2009
Re: probleme pour afficher les donnees
Est ce que tu as essayé une proc sql:
proc sql;
UPDATE mig1&fic SET diag_mig_pays='headache_UK' WHERE diagnostic='headache' AND country='UK'
Je ne sais pas si ca marche, je n'ai jamais essayé!
proc sql;
UPDATE mig1&fic SET diag_mig_pays='headache_UK' WHERE diagnostic='headache' AND country='UK'
Je ne sais pas si ca marche, je n'ai jamais essayé!
flongo- Nombre de messages : 12
Date d'inscription : 17/07/2009
Re: probleme pour afficher les donnees
Si elle n'est pas rempli c'est parce que SAS lui attribut la valeur de l'avant dernière ligne de ton programme.
Donc vérifie ta variable diagnostic, et si ça ne marche toujours pas essaie ce type de syntaxe:
IF...THEN...;
ELSE IF ....THEN...;
....
ELSE ....THEN;
RUN;
Donc vérifie ta variable diagnostic, et si ça ne marche toujours pas essaie ce type de syntaxe:
IF...THEN...;
ELSE IF ....THEN...;
....
ELSE ....THEN;
RUN;
sai9004- Nombre de messages : 45
Date d'inscription : 26/08/2008
Re: probleme pour afficher les donnees
genial! ca fonctionne Merci beaucoup flongo!!
ganod- Nombre de messages : 39
Date d'inscription : 14/07/2009
Re: probleme pour afficher les donnees
De rien
Bon courage
Cdlt
Bon courage
Cdlt
flongo- Nombre de messages : 12
Date d'inscription : 17/07/2009
Re: probleme pour afficher les donnees
merci
Dernière édition par ganod le Mer 22 Juil 2009 - 8:13, édité 1 fois
ganod- Nombre de messages : 39
Date d'inscription : 14/07/2009
Re: probleme pour afficher les donnees
ganod a écrit:Flongo saurais tu (ou quelqu'un d'autre) me dire pourquoi la procedure SQL (que tu m'as donnée hier) fonctionne, et pas l'autre que j'ai ecrite pour la variable statut_pays (data ... set ... if ...) ? dans quels cas utilise t on cette procedure sql ? sinon j'ai un petit probleme:
j'ai ma ligne[size=9]
UPDATE[/size] mig1&fic [size=9]SET[/size] diag_mig_pays=[size=9]"chronic daily headache+migraine_UK"[/size] [size=9]WHERE[/size] diagnostic=[size=9]"chronic daily headache+migaraine"[/size] AND country=[size=9]"UK"[/size];
la variable headache+migraine_UK ne s'affiche pas dans la table (et c la seule!! sinon pour toutes les autres c'est bon) , saurais tu (ou quelqu'un d'autre) pourquoi?? je me demande si ce n'est pas un probleme par rapport au caractere + dans la variable...le journal SAS ne signale rien
j'attends vos reponses
Merci d'avance
ganod- Nombre de messages : 39
Date d'inscription : 14/07/2009
Re: probleme pour afficher les donnees
dans la partie where t'as marqué "migaraine" au lieu de "migraine"
niaboc- Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008
Re: probleme pour afficher les donnees
merci j'ai modifié mais ca ne s'affiche toujours pas
ganod- Nombre de messages : 39
Date d'inscription : 14/07/2009
Re: probleme pour afficher les donnees
chronic daily headache+migaraine
il manquerait pas des espaces autour du '+'?
il manquerait pas des espaces autour du '+'?
niaboc- Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008
Re: probleme pour afficher les donnees
oui c'etait juste ca
merci !
merci !
ganod- Nombre de messages : 39
Date d'inscription : 14/07/2009
Re: probleme pour afficher les donnees
re...
Je vous pose mon probleme, je souhaite faire un test de la normalité en ecrivant ceci:
[size=9]
proc[/size] [size=9]univariate[/size] [size=9]data[/size]=mig1&fic [size=9]normal[/size];
[size=9]where[/size] diag_mig ne [size=9]0[/size];
[size=9]class[/size] diag_mig country ;
[size=9]var[/size] WHOQOL HADS HADS_A HADS_D MIDAS; [size=9]
RUN[/size];
ma variable country a 6 niveaux : UK FR ALL IT LUX ESP
Ma table de donnée est rangée par pays d'abord UK apres ALL etc... MAIS J'ai un pb au niveau de la variable diag_mig : Pour le UK (et uniquement pour lui) on n'a pas la variable diag_mig (variable numerique) mais la variable diagnostic(variable texte) dans une autre colonne
donc pour faire mon test sur la normalité je voudrais ecrire quelque chose comme :
class diagnostic country if country="UK";
else class diag_mig country;
c'est bizarre je sais mais je suis perdue!
j'attends vos reponses
MERCI
Je vous pose mon probleme, je souhaite faire un test de la normalité en ecrivant ceci:
[size=9]
proc[/size] [size=9]univariate[/size] [size=9]data[/size]=mig1&fic [size=9]normal[/size];
[size=9]where[/size] diag_mig ne [size=9]0[/size];
[size=9]class[/size] diag_mig country ;
[size=9]var[/size] WHOQOL HADS HADS_A HADS_D MIDAS; [size=9]
RUN[/size];
ma variable country a 6 niveaux : UK FR ALL IT LUX ESP
Ma table de donnée est rangée par pays d'abord UK apres ALL etc... MAIS J'ai un pb au niveau de la variable diag_mig : Pour le UK (et uniquement pour lui) on n'a pas la variable diag_mig (variable numerique) mais la variable diagnostic(variable texte) dans une autre colonne
donc pour faire mon test sur la normalité je voudrais ecrire quelque chose comme :
class diagnostic country if country="UK";
else class diag_mig country;
c'est bizarre je sais mais je suis perdue!
j'attends vos reponses
MERCI
ganod- Nombre de messages : 39
Date d'inscription : 14/07/2009
Sujets similaires
» problème d'exploration des données
» Problème en analyse de données
» Problème normalisation données
» Problème analyse de données avec R (ACM)
» Problème régression puissance sur données expérimentales
» Problème en analyse de données
» Problème normalisation données
» Problème analyse de données avec R (ACM)
» Problème régression puissance sur données expérimentales
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum