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 :

Compter le nombre de DM par enregistrement


Sujet :

SAS Base

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Biostatisticienne
    Inscrit en
    Décembre 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Biostatisticienne
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2017
    Messages : 41
    Points : 26
    Points
    26
    Par défaut Compter le nombre de DM par enregistrement
    Bonjour,

    Je voudrai savoir si c'est possible de compter le nombre de données manquantes par enregistrement (donc par ligne) ? Je dispose d'environs 200 variables et j'aimerai avoir le nombre de données manquantes (notées . ou vide) par ID.

    J'avais pensé à créer d'autres variables en mettant 1 si c'est manquant ou vide et faire une somme, mais sur 200 variables ça me parait compliqué...


    Merci pour vos réponses.

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut
    Bonjour,

    En reprenant vos donnée :

    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 test;
      input ID X1 :$3. X2 :$3. Y3 :$3. Y4 :$3. Y5 :$3. X6 :$3. X7 :$3. X8 :$3. X9 :$3. X10 :$3. X11 :$3.;
      cards;
    1 Oui Non Oui Non Non Oui ? Oui ? ? Oui
    2 ? ? Non Oui ? ? ? ? Non Non Oui
    run;
     
    data test(drop=i);
      set test;
      array X(11) X1--X11;
      do i=1 to 11;
        if X(i)="?" then X(i)="";
      end;
    run;
     
    data test;
      set test;
      array X(11) X1--X11;
      nbMissing = cmiss(of X[*]);
    run;
    Voir ici.

    NB : La notation array X(11) X1-X11 référence les variables dont le nom commence par X alors que la notation array X(11) X1--X11 référence les variables comprises entre X1 et X11 et prend donc en compte les variables Y3, Y4 et Y5.

    Cordialement,

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Biostatisticienne
    Inscrit en
    Décembre 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Biostatisticienne
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2017
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Bonjour, merci pour ce code.

    J'y ai pensé mais le problème c'est que les variables doivent être du même type avec un Array.

    Y a t il une autre solution ? Sinon, je ferai des Array pour chaque type de variables.

    est-il possible de faire un Array comme ceci :

    array T(8) X1--X4 X6--X9
    Merci

  4. #4
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Compter le nombre de DM par enregistrement
    Ça se teste facilement :

    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 test;
      input ID X1 :$3. X2 :$3. Y3 :$3. Y4 :8. Y5 :8. X6 :8. X7 :$3. X8 :$3. X9 :$3. X10 :$3. X11 :$3.;
      cards;
    1 Oui Non Oui 0 0 1 ? Oui ? ? Oui
    2 ? ? Non 1 . . ? ? Non Non Oui
    run;
     
    data test(drop=i);
      set test;
      array X(8) X1--Y3 X7--X11;
      do i=1 to 8;
        if X(i)="?" then X(i)="";
      end;
    run;
     
    data test;
      set test;
      array X(8) X1--Y3 X7--X11;
      nbMissing = cmiss(of X[*]);
    run;
    Cordialement,

Discussions similaires

  1. Shell script pour compter le nombre de fichiers par extension
    Par andress33 dans le forum Shell et commandes GNU
    Réponses: 16
    Dernier message: 30/03/2015, 01h26
  2. Compter le nombre de visite par jour
    Par Are-no dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/02/2008, 16h37
  3. Réponses: 3
    Dernier message: 08/09/2006, 12h35
  4. [Access] Compter le nombre d'arrivée par année
    Par tatayoyo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 23/08/2006, 12h08
  5. Compter le nombre de page par regroupement
    Par bondyfalat dans le forum Access
    Réponses: 2
    Dernier message: 01/03/2006, 17h08

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