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 :

Proc print avec valeurs manquantes


Sujet :

SAS Base

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Data manager
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Data manager
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Points : 37
    Points
    37
    Par défaut Proc print avec valeurs manquantes
    Bonjour

    Mon intitulé n'est pas très clair, mais voici mon problème :

    j'ai une table de deviation, chaque patient peux avoir une ou plusieurs deviation, j'ai donc plusieurs colonnes dev1 à dev12.
    au maximum un patient à 4 deviations

    Je voudrais faire un listing sans avoir à mettre mes 12 colonnes et donc dire que si ma dev1 est vide je regarde quelle prochaine deviation est remplie et la mettre en dev1

    ex :
    ce que j'ai
    pat_id dev1 dev2 dev3 dev4 dev5 dev6
    123 pas de b pas de c



    ce que je voudrais
    pat_id devnew1 devnew2 devnew3 devnew4
    123 pas de b pas de c


    j'ai testé l'option missing qui fonctionne très bien mais dès que je le mets dans une boucle cela ne fonctionne plus.
    Peux être existe t il une autre solution mais au cas où voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    data inter.deviation; set pd4;
    attrib devnew1 length=$50;
    attrib devnew2 length=$50;
    attrib devnew3 length=$50;
    attrib devnew4 length=$50;
    attrib devnew5 length=$50;
    array dev[11] dev1-dev11;
    array devf[5] devnew1-devnew5;
    do i=1 to 11;
    do j=1 to 5;
    if missing(dev[i]) then devnew[j]=dev[i]+1;
    end;
    end;
    merci d'avance pour vos retour
    marion

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut
    Bonjour,

    Je pense que cela répond à ta question :
    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
     
    data pd4;input pat_id $ dev1 $ dev2 $ dev3 $ dev4 $ dev5 $ dev6 $;cards;
    id1 . 20 . 40 . 60
    id2 11 21 31 . . .
    id3 . 22 32 . 52 . 
    id4 . 23 . 43 . 63
    ;
     
    data deviation(drop=i j); set pd4;
    	attrib devnew1 length=$50;
    	attrib devnew2 length=$50;
    	attrib devnew3 length=$50;
    	array dev[6] dev1-dev6;
    	array devnew[3] devnew1-devnew3;
    	j=1;
    	do i=1 to 6;
    		if not missing(dev[i]) then do;devnew[j]=dev[i];j+1;end;
    	end;
    run;
    proc print;run;

Discussions similaires

  1. Réponses: 8
    Dernier message: 01/12/2017, 15h21
  2. Utilisation de PROC MI : imputation valeurs manquantes
    Par Mark531 dans le forum SAS STAT
    Réponses: 5
    Dernier message: 21/04/2015, 10h38
  3. Proc logistic et valeurs manquantes
    Par dachboden dans le forum SAS STAT
    Réponses: 3
    Dernier message: 06/05/2011, 13h55
  4. Importer sous MapInfo données Excel avec valeur manquantes
    Par dashblade dans le forum SIG : Système d'information Géographique
    Réponses: 1
    Dernier message: 12/06/2009, 15h17
  5. Proc Format avec valeur manquante
    Par Silbad dans le forum SAS Base
    Réponses: 9
    Dernier message: 15/05/2009, 16h38

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