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

Macro Discussion :

remplir les champs d'une variables à partir des autres


Sujet :

Macro

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 167
    Points : 65
    Points
    65
    Par défaut remplir les champs d'une variables à partir des autres
    Bonjour,

    Je dispose de 150 variables dans une table comme suit:

    Var1 var2 var3 ...........Var150
    4
    5
    9
    10
    85
    10
    85
    12
    30
    15

    Je voudrais remplacer la valeur manquante dans Var1 à partir des variables Var2 à Var150.

    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 249
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    S'il s'agit d'un second aspect du même traitement qu'au message précédent, il semble bien que l'algorithme initial soit un peu complexe...
    Mais voici une solution, avec un ARRAY, pour combler les valeurs manquantes de VAR1 avec la première valeur non-manquante des variables suivantes...
    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
    19
    20
    21
    22
    23
    data test ;
       input var1-var5 ;
       cards ;
    . 1 2 3 4
    2 3 4 5 6
    . . 3 4 5
    . . . 4 5
    . 5 6 7 8
       ;
    run ;
    data resultat ( drop = i ) ;
       set test ;
       array avar(*) var: ;
       if var1  = . then do ;
          do i = 2 to dim(avar) ;
             if avar(i) ne . then do ;
               avar(1) = avar(i) ;
               goto fin ;
             end ;
          end ; 
    fin:
       end ;
    run ;
    Bon courage !
    Bruno.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 113
    Points : 107
    Points
    107
    Par défaut
    La fonction COALESCE permet de récupérer la première valeur non manquante d’une série de variables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PROC SQL;
      SELECT nom, COALESCE(v1,v2,v3,v4,v5) AS Premier
        FROM table;
    QUIT;

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/08/2014, 18h14
  2. Réponses: 14
    Dernier message: 15/04/2008, 16h39
  3. Comment remplir les champs d'une autre application ?
    Par rico32fr dans le forum C++Builder
    Réponses: 6
    Dernier message: 19/06/2006, 08h54
  4. Probleme de requete pour remplir les champs d'une table
    Par Jim_Nastiq dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/04/2006, 14h56
  5. remplir un champ d'une table à partir d'une autre table
    Par MrsFrizz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/02/2005, 16h48

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