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 :

Si au moins une des variables est égale à une valeur


Sujet :

SAS Base

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Si au moins une des variables est égale à une valeur
    Bonjour ,

    Je dispose de 10 variables sous la forme de VAR1 .... VAR10 et je souhaite à partir de ces variables de calculer une variable (que j'appelle par exemple VAR) qui est égale à 1 si au moins l'une des variables est égale à 1.

    Un code simple comme celui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data  toto ;
      set  toto ;
      if  var1=1  or var2=1 or var3=1 or var4=1 or var5=1 or var6=1 or var7=1 or var8=1 or var9=1 or var10=1 
      then var=1 ;
      run ;
    Je voudrais néanmoins automatiser ce code en fonction du nombre de variables vu que le nombre de mes variables VAR peut changer. Je ne vois absolument pas comment je peux faire ni en macro ni avec un array, si l'un de vous a une solution je suis bien preneuse.

    Je vous remercie d'avance de votre aide.

    Bonne journée.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 133
    Points : 371
    Points
    371
    Par défaut
    ça devrait fonctionner....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    data toto2(rename=(blop=var));
       set toto;
       if sum(of var:)>=1 then blop=1;
    run;
    le RENAME est là pour éviter les "accidents" qui ne manqueront pas d'arriver si vous faites des étapes DATA du style DATA toto / SET toto...

    Cordialement

    Sébastien Ringuedé

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Je ne savais pas qu'on pouvait utiliser un of dans la fonction sum (le toto était là juste pour l'exemple ).
    Je vous remercie beaucoup, vous me sauvez.

    Bonne journée

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

Discussions similaires

  1. Créer une macro variable à partir d'une macro variable
    Par AlexandraN78 dans le forum Macro
    Réponses: 5
    Dernier message: 24/05/2016, 15h06
  2. Réponses: 4
    Dernier message: 31/07/2014, 16h56
  3. Intégrale dont l'une des bornes est une variable
    Par clem3900 dans le forum MATLAB
    Réponses: 1
    Dernier message: 20/07/2012, 15h42
  4. Réponses: 0
    Dernier message: 18/06/2012, 16h33
  5. Ajout de deux colonnes lorsqu'une des deux est à null
    Par KibitO dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/09/2006, 14h07

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