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

Débutez Discussion :

Les valeurs de chaque variable sur 1 seule ligne pour un individu


Sujet :

Débutez

  1. #1
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Points : 60
    Points
    60
    Par défaut Les valeurs de chaque variable sur 1 seule ligne pour un individu
    Bonjour,

    Le titre n'est sans doute pas très explicite alors je vais vous montrer ce que j'ai et ce que je voudrais avoir.

    J'ai une table du genre :

    Ident var1 var2 var3
    01 . 2 .
    01 1 . .
    01 . . 6
    02 4 . .
    02 . . 5
    03

    Et je voudrais avoir :

    Ident var1 var2 var3
    01 1 2 6
    02 4 0 5


    J'ai essayé plusieurs trucs mais ça ne fonctionne jamais, ça ne garde que la valeur d'une des variable ou d'autres erreurs...

    Merci d'avance pour votre aide !

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Points : 181
    Points
    181
    Par défaut
    Salut,

    Si c'est des variables numériques tu peux peut etre t'en sortir facilement avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    proc means data = tatable sum nway noprint;
    class ident;
    var var: ;
    output out = tatable2(drop = _type_ _freq_) sum=;
    run;
    Suistrop.

  3. #3
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    Visiblement tes variables sont numériques donc la solution de SuisTrop est la plus efficace.
    Si tu as un jour des variables de type caractère, cependant, ça ne fonctionnera pas. Il faut donc passer par une étape DATA et 2 arrays (un pour les variables existantes, un pour une mémoire de la valeur à l'observation précédente) avec en bonus un RETAIN pour assurer la bonne mémorisation.
    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
    DATA work.incomplet ;
    	INPUT (Ident var1 var2 var3) ($) ;
    DATALINES ;
    01 . 2 .
    01 1 . .
    01 . . 6
    02 4 . .
    02 . . 5
    ;
    RUN ;
    DATA work.complet (DROP=i) ;
      SET work.incomplet ;
      BY ident ;
      ARRAY valeur $ var1-var3 ;
      ARRAY memoire {3} $ _TEMPORARY_ ;
      RETAIN memoire: ;
      DO i=1 TO 3 ;
    	valeur(i)=COALESCEC(valeur(i),memoire(i)) ;
        memoire(i)=valeur(i) ;
      END ;
      IF LAST.ident THEN OUTPUT ;
    RUN ;
    Évidemment, on peut adapter ce code à des variables numériques en enlevant les $ dans les déclarations des arrays ; mais cela n'a d'intérêt que si on n'a pas QUE des variables numériques (auquel cas la proc Means est largement plus immédiate à comprendre).
    Bon courage.
    Olivier

  4. #4
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    J'y suis arrivée !
    Olivier, j'ai acheté le livre que vous avez co-écrit avec Hélène Kontchou Kouomegni l'année dernière et il m'est très utile.

    Merci à vous 2!

    Au plaisir,
    Laura.

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

Discussions similaires

  1. [XL-2010] PB remplir une ComboBox avec les valeurs de plusieurs cellules sur la même lignes
    Par eviuss dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/05/2014, 07h01
  2. [AC-2007] Requête UNION : récuperer les valeurs sur une seule ligne
    Par tibofo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/12/2009, 12h02
  3. Réponses: 1
    Dernier message: 15/11/2006, 01h49
  4. Réponses: 5
    Dernier message: 16/05/2006, 09h23
  5. afficher les valeurs de la variable post?
    Par jeff1985 dans le forum Langage
    Réponses: 1
    Dernier message: 09/05/2006, 13h31

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