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

Macro Discussion :

Macro SAS : comment faire tourner un proc genmod à partir d'une liste de variable ?


Sujet :

Macro

  1. #1
    Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Macro SAS : comment faire tourner un proc genmod à partir d'une liste de variable ?
    Bonjour,

    D'habitude, je trouve toujours mon bonheur sur ce forum mais là je coince ; je ne trouve pas ; certainement parce que je n'ai pas la bonne approche...

    Voilà : pour me faciliter la tâche je cherche à faire de la régression logistique univariée (avec une proc genmod) entre une variable indépendante et une variable dépendante.

    La variable dépendante "X"
    La liste de variables indépendantes "A, B, C, D, E, etc"

    Je souhaiterais que la proc genmod garde toujours en paramètres la variable dépendante mais soit capable avec une macro de prendre à chaque fois les variables indépendantes une à une :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    proc genmod data = test_V1 descending;
     class ;
     model X= A
    /dist = binomial link = logit
    TYPE1; 
    run;
     
    proc genmod data = test_V1 descending;
     class ;
     model X= B
    /dist = binomial link = logit
    TYPE1; 
    run;

    etc.

    J'ai cherché avec les boucles mais pas moyen de trouver une formule sur le net que je puisse réappliquer... Bref Help! et merci pour les conseils.

  2. #2
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    c'est comme le post d'huitre et sa proc MEANS.

    Tu fais quelque chose comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    %let Maliste= A B C D E ;
     
     
    %do i=1 %TO %EVAL(%SYSFUNC(count(%cmpres(&Maliste.),%STR( )))+1);
    %let VAR&i=%scan(&Maliste,&i,' ');
    proc genmod data = test_V1 descending;
    class ;
    model X= &&VAR&i /dist = binomial link = logit TYPE1; 
    run;
    %end;
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  3. #3
    Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup!!! çà marche nickel !!! en rajoutant juste macro et mend biensûr. Vous m'avez enlevé une épine du pied :-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    %macro Listvar ;
    %do i=1 %TO %EVAL(%SYSFUNC(count(%cmpres(&Listvar_Genre.),%STR( )))+1);
    %let VAR&i=%scan(&Listvar_Genre,&i,' ');
    proc genmod DATA = test_V1 descending;
    class ;
    model hypertension_sniiram= &&VAR&i /dist = binomial link = logit TYPE1; 
    run;
    %end;
    %mend Listvar ;
     
    %Listvar;

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/10/2014, 17h51
  2. Réponses: 1
    Dernier message: 13/01/2013, 19h43
  3. Réponses: 3
    Dernier message: 14/05/2009, 13h39
  4. Réponses: 2
    Dernier message: 28/08/2008, 12h27
  5. Comment faire pour générer un fichier à partir d'une BD MySQL
    Par dessinateurttuyen dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/07/2006, 20h39

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