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 :

[Taux de mortalité]Chercher une valeur dans une table particulière selon les caractéristiques de l'observation [DATA]


Sujet :

SAS Base

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut [Taux de mortalité]Chercher une valeur dans une table particulière selon les caractéristiques de l'observation
    Bonjour à tous,
    Je sollicite votre aide pour créer une requête dans SAS qui me permette d'ajouter dans ma table principale une valeur pour chaque sujet présente dans d'autre table, l'autre table étant particulière pour chaque sujet.

    Je m'explique:
    J'ai un classeur excel où sont présentes 52 feuilles: chaque feuille excel correspond à un âge et un sexe particulier.
    Dans chacune de ces feuilles sont présentes les régions de France et le taux de mortalité correspondant pour chaque année.
    Ainsi si je veux connaitre le taux de mortalité d'un homme de 61 ans en ile de France en 2008 je vais dans la feuille "homme61ans" (nom donné pour l'exemple) et je regarde la valeur présente pour la ligne ile de france et la colonne 2008.

    Je dispose d'une table SAS où sont présent l'age, la région, le sexe pour chaque sujet, et je voudrais donc lui attribuer le taux de mortalité correspondant à ses caractéristiques, en 2008. Je comptais extraire les 52 feuilles de manière à avoir autant de tables SAS (exemple H61, F61, H62, F62 etc...), mais je coince quand à la requête à écrire pour demander à SAS d'aller chercher dans la bonne table et la bonne ligne. Le fichier étant de plus de 1400 lignes je me vois mal faire ça manuellement. Je pense que le langage macro est nécessaire ici mais l'écriture de la requete me parait complexe au vu de mes connaissance en langage macro... J'ai regardé le SQL mais je ne vois pas non plus comment faire.

    Merci d'avance à ceux qui pourront m'aider.

    Cordialement.

    Maxime

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Petit détail trivial : il n'y a qu'une table pour les patients de 85 ans et plus!

  3. #3
    Membre expérimenté
    Homme Profil pro
    Attaché statisticien
    Inscrit en
    Mai 2011
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Attaché statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2011
    Messages : 687
    Points : 1 581
    Points
    1 581
    Par défaut
    Bonjour,

    il me semble que la résolution est simple en partant de ce que tu as commencé à faire.

    Tu as ta table TaTable de données, et Hxx et Fxx tes tables de mortalité.

    Le mieux c'est d'empiler les tables me mortalité en une seule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DATA Mortalite;
    SET H01 H02 H03 (...) H85 
          F01 F02 F03 (...) F85 ; /*** les (...) sont les tables à écrire ( à toi  de compléter) éventuellement peuvent-être générées par une macro ***/
    RUN;
    Ensuite tu peux faire un merge

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    PROC SORT DATA=MORTALITE; BY SEXE AGE REGION;RUN;
    PROC SORT DATA=TaTable; BY SEXE AGE REGION;RUN;
     
    DATA RESULTAT; MERGE TaTable MORTALITE; BY SEXE AGE REGION;
    RUN;
    pour les plus de 85 il faudrait avoir mis l'âge à 85 (éventuellement donc dupliquer la variable age en amont afin de la garder pour les exploitations ultérieures).

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Je n'avais pas du tout pensé à faire comme ça. C'est beaucoup plus simple du coup :-). Je vais essayer ça et te tenir au courant mais ça devrait fonctionner en ajoutant en amont l'age et le sexe dans chaque table de mortalité avant de faire la première étape que tu décris.

    Merci beaucoup.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Xou51 Voir le message
    Je n'avais pas du tout pensé à faire comme ça. C'est beaucoup plus simple du coup :-). Je vais essayer ça et te tenir au courant mais ça devrait fonctionner en ajoutant en amont l'age et le sexe dans chaque table de mortalité avant de faire la première étape que tu décris.

    Merci beaucoup.
    Bonjour,
    ça fonctionne bien.
    J'ai juste du mettre un where=(id ne '') pour éviter d'afficher les valeurs qui ne correspondaient à aucun patient.

    Encore merci de ton aide!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [XL-2003] Insérer la valeur d'une cellule dans une phrase d'une autre
    Par DonaldTron dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/04/2009, 19h50
  3. quand je selectionne une valeur dans une liste, retourne une autre valeur
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/12/2008, 14h23
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Réponses: 1
    Dernier message: 25/09/2006, 17h15

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