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 :

Compteur pour première donnée non manquante


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 18
    Points
    18
    Par défaut Compteur pour première donnée non manquante
    Bonjour à tous!

    Je possède des données consultations, c'est à dire qu'un individus peut avoir une ou plusieurs lignes.
    Pour certaines variables comme le sexe, l'âge ou le type de logement, j'aurai besoin se prendre l'information dès qu'elle est dispo et l'appliquer partout.
    Je sais ce n'est pas très clair!

    En gros si quelqu'un est venu 4 fois (4consultations donc 4 lignes) et que pour l'âge j'ai :
    1ère consultation (1ère ligne) : vide
    2ème consultation (2ème ligne) : 26
    3ème consultation (3ème ligne) : 27
    4ème consultation (4ème ligne) : vide
    Je voudrais avoir après :
    1ère consultation (1ère ligne) : 26
    2ème consultation (2ème ligne) : 26
    3ème consultation (3ème ligne) : 26
    4ème consultation (4ème ligne) : 26
    J'aimerai faire un espèce de compteur qui prend la première info de l'âge et qui l'applique à toutes les consultations de chaque individu.

    Quelqu'un pourrait m'aider ?
    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Points : 1 063
    Points
    1 063
    Par défaut
    Bonjour,

    Le truc est de créer une table de référence comprenant les premières infos associées à chaque ID. et ensuite faire une jointure gauche via un proc sql.

    Ex :

    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
    24
    25
    26
    27
    28
    29
     
    data test ; 
     input idconsult nconsul age ; 
     cards ; 
    1 1 .
    1 2 .
    1 3 49
    1 4 51
    2 1 .
    2 2 1
    2 3 .
    2 4 2
    ;
    run ; 
     
    proc sort data = test ; by descending idconsult  descending nconsul ; run ; 
     
    data testref ; 
    set test ; 
    by descending idconsult descending nconsul ; 
    where age ^= . ; 
    if last.idconsult then output ; 
    run ; 
     
    proc sql ;
    create table test_bis as
    select test.idconsult, test.nconsul, testref.age 
    from test left join testref on test.idconsult = testref.idconsult ; 
    quit ;
    Cdt
    I always thought that the person who specialized in using just SAS PROCS should
    be known as the SAS Proctologist.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Merci pour cette réponse claire et rapide, ça marche!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/01/2014, 17h14
  2. Réponses: 2
    Dernier message: 17/01/2012, 10h06
  3. Obtenir le nombre de valeurs non manquantes pour une variable
    Par marie mouse dans le forum SAS Base
    Réponses: 5
    Dernier message: 14/12/2007, 17h33

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