IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS Base Discussion :

Tester si une variable existe


Sujet :

SAS Base

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 63
    Points : 32
    Points
    32
    Par défaut Tester si une variable existe
    Bonjour!

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

    Merci beaucoup

  2. #2
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    tu regardes via le résultat dans la proc CONTENTS. Il y a d'autres méthodes mais c'est le plus simple.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 63
    Points : 32
    Points
    32
    Par défaut
    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

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 63
    Points : 32
    Points
    32
    Par défaut
    J'ai trouvé cette macro sur le net :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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!

  5. #5
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    Effectivement dans tous les cas tu vas devoir programmer une dizaine de lignes.

  6. #6
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    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

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 63
    Points : 32
    Points
    32
    Par défaut
    Oh merci
    désolée, je ne connaissais pas! Je suis débutante

  8. #8
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    Hello,
    une solution avec moins de lignes , on peut aussi utiliser &sqlobs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/12/2014, 22h50
  2. Comment tester si une variable existe ?
    Par [ZiP] dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/08/2012, 18h53
  3. [PHP 5.1] tester qu'une variable existe même si elle vaut null
    Par hadesjack dans le forum Langage
    Réponses: 5
    Dernier message: 15/02/2012, 15h23
  4. [Shell] Tester si une variable existe ou est vide
    Par Toutankharton dans le forum Linux
    Réponses: 6
    Dernier message: 25/01/2008, 10h56
  5. Tester si une variable passé en url existe
    Par ran_hery dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 02/08/2005, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo