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 :

Obtenir le nombre de valeurs non manquantes pour une variable


Sujet :

SAS Base

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 39
    Points : 34
    Points
    34
    Par défaut Obtenir le nombre de valeurs non manquantes pour une variable
    Bonjour,

    Je débute avec SAS et je cherche à savoir comment obtenir le nombre d'enregistrements d'une table SAS et le nombre de valeurs non nulles d'une variable.

    Plus précisément, je cherche à donner un identifiant unique à chaque observation. J'ai commencé par donner le numéro de l'observation comme identifiant, seulement entre temps, j'ai intercalé d'autres observations. Je voudrais leur donner comme identifiant le nombre de valeurs non nulles de la variable + 1. Est-ce une bonne solution? Y en a-t-il une meilleure?

    Merci pour vos réponses...

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 289
    Points : 161
    Points
    161
    Par défaut
    Bonjour,

    Peut-être les petits programmes suivants pourront t'aider :

    CREATION D'UN PETIT JEU DE DONNEES
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data bidon; input X1 ; cards;
    0
    35
    0
    ;run;
    CREATION D'UNE VARIABLE POS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DATA bidonbis ;
    set bidon;
    if X1 = 0 then pos = 1; else pos=0;
    run;
    PROG POUR COMPTER NOMBRE D'ENREGISTREMENTS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    %let ds=%sysfunc(open(work.bidon));
    %let nb_obs=%sysfunc(attrn(&ds,nlobs));
    %let ds=%sysfunc(close(&ds));
    %put &nb_obs;
    ash_rmy

  3. #3
    Responsable SAS


    Inscrit en
    Septembre 2006
    Messages
    3 176
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 176
    Points : 16 157
    Points
    16 157
    Par défaut
    Salut,
    Que veux-tu exactement?
    Dénombrer le nombre d'observation et le nombre de valeurs manquantes ou créer un identfiant pour une table.
    En parlant d'identifiant sache que tu peux créer des clés contenant plusieurs variable : pour être plus claire un identifiant peux être déterminer par une, deux variables ou plus de deux variables : genre le nom, prenom, date de naissance et date du jour!!
    Suivant ta réponse nous pourrons orienter nos réponses.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    Dans ma table, j'ai des noms , prénoms - hashés, et autres données médicales de patiente. Certaines d'entre elles peuvent être des homonymes (même nom, même prénom et parfois même même date de naissance!). Donc ce n'est pas forcément une bonne idée de les utiliser comme identifiants.

    Je veux créer un numéro unique pour chaque observation qui identifiera une et une seule patiente. Je pensais prendre le numéro de l'observation et puis si des observations s'intercalent entre temps, je voulais prendre le nombre d'observations + 1. J'ai voulu utiliser une fonction de génération de nombre pseudo-aléatoire mais il y a toujours un doublon et SAS refuse du coup - et c'est normal - de procéder à la mise en place de la clé primaire.

    Je suis tout à fait capable de pondre un algorithme en java qui génère un numéro unique. Mais alors avec SAS, je dois apprendre à raisonner autrement...

    Voilà

    Merci

  5. #5
    Responsable SAS


    Inscrit en
    Septembre 2006
    Messages
    3 176
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 176
    Points : 16 157
    Points
    16 157
    Par défaut
    Avec le langage marco de SAS tu peux réussir à faire à peu près le même type de programmation : boucle, test if, ......, declaration de variables.

    Par contre juste une question : concernant tes doublons tu suppose donc que chaque personne n'apparaît qu'une et une seule fois : il n'y a donc aucun doublons dans ta table!!
    En effet en ne créant un identifiant que par rapport à son numero d'observation tu ne pourra pas identifier des personnes similaires!!

    Une autre question : pourquoi ton numero d'observation n'est pas déjà unique (donc succeptible d'être une clé)??

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Points : 540
    Points
    540
    Par défaut
    J'ai peut-être raté un épisode, mais pourquoi tu n'utilises pas la variable interne _N_ pour générer tes IDs ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    data dossierMedical;
    set patients;
    ID=_N_;
    run:

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 21/07/2017, 14h57
  2. Réponses: 3
    Dernier message: 25/10/2010, 15h11
  3. Réponses: 2
    Dernier message: 06/07/2010, 13h42
  4. nombre de valeurs non nulles dans une tables
    Par 080983 dans le forum SQL
    Réponses: 33
    Dernier message: 27/08/2007, 12h04
  5. Formule : nombre de valeur non nulles
    Par abertaud dans le forum Excel
    Réponses: 1
    Dernier message: 15/05/2007, 13h48

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