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 21/07/2011, 10h31   #1
Invité régulier
 
Inscription : avril 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 60
Points : 8
Points : 8
Par défaut Tester si une variable existe

Bonjour!

Savez vous comment on teste si une variable existe sous SAS?

Merci beaucoup
Misspatate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 10h36   #2
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
tu regardes via le résultat dans la proc CONTENTS. Il y a d'autres méthodes mais c'est le plus simple.
__________________
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 00
Vieux 21/07/2011, 10h47   #3
Invité régulier
 
Inscription : avril 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 60
Points : 8
Points : 8
Coucou

Merci pour ta réponse.

En fait ça me semble plus difficile de faire ainsi...

Je souhaiterais tester si elle existe car dans certains cas, elle existe (donc je souhaiterais la supprimer) dans d'autres non (je souhaiterais la créer).
Donc passer par un proc contents me parait un peu compliqué, il faudrait tester si elle existe, puis faire une macrovariable qui teste si c'est bon ou pas et selon la valeur de la macrovariable, créer ou supprimer la variable...
S'il y a une autre solution, je suis prenante, sinon, je ferai avec la proc content...

Merci
Misspatate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 11h02   #4
Invité régulier
 
Inscription : avril 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 60
Points : 8
Points : 8
J'ai trouvé cette macro sur le net :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
%macro VarExist(ds,var);
	%LOCAL rc dsid result;
	%let dsid=%sysfunc(open(&ds));
	%IF %sysfunc(varnum(&dsid,&var)) > 0 %then %do;
		%let result=1;
		%put NOTE: Var &var EXISTS IN &ds;
	%end;
	%else %do;
		%let result=0;
		%put NOTE: Var &var NOT EXISTS IN &ds;
	%end;
	%let rc=%sysfunc(close(&dsid));
	&result
%mend VarExist;
 
/* Usage */
%put %VarExist(sashelp.class,name);
%put %VarExist(sashelp.class,aaa);
Dommage qu'il faille programmer tout ça pour tester seulement l'existence d'un variable!
Misspatate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 11h48   #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
Effectivement dans tous les cas tu vas devoir programmer une dizaine de lignes.
__________________
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 00
Vieux 21/07/2011, 13h59   #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
Citation:
Envoyé par Misspatate Voir le message
Bonjour!

Savez vous comment on teste si une variable existe sous SAS?

Merci beaucoup
regardes la
la réponse est pourtant ici
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 14h50   #7
Invité régulier
 
Inscription : avril 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 60
Points : 8
Points : 8
Oh merci
désolée, je ne connaissais pas! Je suis débutante
Misspatate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 10h12   #8
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
Hello,
une solution avec moins de lignes , on peut aussi utiliser &sqlobs
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
/*même principe : si la variable existe ,&exist vaut 1 sinon 0*/
%macro exist(le_libname, la_table,la_colonne);
 
proc sql noprint;
SELECT count(name)INTO :exist FROM dictionary.COLUMNS WHERE upcase (libname)="le_libname" AND upcase (memname)="&la_table" AND upcase(name)="&la_colonne";
quit;
 
%put résultat : &exist.;
%mend;
%exist( sashelp, class,sex);
%exist( sashelp, class,sexe);
s_a_m 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 00h33.


 
 
 
 
Partenaires

Hébergement Web