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 :

Création d'une macro ACM [Débutant(e)]


Sujet :

Macro

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Création d'une macro ACM
    Bonjour à tous, et merci d'avance de votre aide.

    Je suis débutant en SAS.
    J'ai a ma disposition une table d'une cinquantaine de variable, et d'environ 400 individus. Chaque ligne est composée de Vrai ou Faux.

    J'aimerais transformer ces Vrai-Faux afin de pouvoir réaliser des ACM sur des groupements de variables.
    Par exemple, obtenir le nom de la variable + le vrai ou faux.

    J'ai essayé de faire une macro, mais ça ne marche pas et j'aurais besoin d'un peu d'aide.

    Voici ce que j'ai réalisé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    %macro transacm;
    %do i=1 %to 60 ;
    %let varmodif=%scan(&var,&i);
    data ***;
    set ***;
    if &varmodif='VRAI' then &varmodif.m=catt("&varmodif","-Vrai");
    if &varmodif='FAUX' then &varmodif.m=catt("&varmodif","-Faux");
    drop &varmodif;
    run;
    %end;
    %mend;
    Voilà.
    Mon premier problème est concernant la macro variable.
    J'ai essayé avec une petite table. Et en précisant %let var=&nomvariable
    avant, j'ai un résultat ( même si ça ne marche quand meme pas ).


    J'aimerais donc savoir comment gérer le fait que j'aimerais que la macro s'applique à toutes mes variables, sans devoir rentrer le nom de chacune. Et aussi, pourquoi ma macro ne marche pas ...


    Merci à tous.
    Gia.

  2. #2
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 624
    Points : 3 402
    Points
    3 402
    Par défaut
    Hello,
    tu peux faire ça avec un ARRAY pour boucler sur tes variables et la fonction VNAM qui te récupèer le nom de tes variables.

    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
     
    data exemple (drop=i);
    ID=1;
    array vv(40)$20 var1-var40;
       do i =1 to dim(vv);
    	vv(i)='vrai';
       end;
    run;
    data exemple1 (drop=i);
    set exemple;
    array vv (*)  var:;
      do i=1 to dim(vv) ;
    	vv(i)=catx('-',vname(vv(i)),vv(i));
      end;
    run;
    N'oubliez pas de consulter les FAQ SAS et les cours et tutoriels SAS
    N'oubliez pas de mettre votre message à si la solution donnée résout votre problème

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Merci !
    Peux-tu m'expliquer les étapes ?? Car je ne comprends pas trop ...

  4. #4
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 624
    Points : 3 402
    Points
    3 402
    Par défaut
    La première étape data c'était juste pour créer un jeu de données.

    Dans la seconde étape data. J'ai utilisé un ARRAY ( tableaux ) pour prendre en compte toutes les variables qui comment par VAR et j ai boucler dessus.

    Vnama c est une fonction qui te permet de récupérer le nom de la variable

    Par la suite j'ai concatiné le nom de lz variable et Sa valeur.

    Pour connaître le fonctionnement des fonctions utilisées dans une session SAS et tu rentre le nom de la fonction .
    N'oubliez pas de consulter les FAQ SAS et les cours et tutoriels SAS
    N'oubliez pas de mettre votre message à si la solution donnée résout votre problème

Discussions similaires

  1. Création d'une macro avec un paramètre
    Par jacklafrip dans le forum C
    Réponses: 4
    Dernier message: 19/02/2008, 21h35
  2. Création d'une macro sur bouton
    Par guenfood dans le forum IHM
    Réponses: 1
    Dernier message: 13/12/2007, 17h06
  3. Création d'une macro qui remplira un agenda
    Par Cyriusix dans le forum VBA Word
    Réponses: 21
    Dernier message: 07/12/2007, 11h28
  4. Création d'une macro mais erreur
    Par guismoman33 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 04/06/2007, 18h14
  5. {EXCEL ou VBA}Création d'une macro (Débutant)
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/05/2007, 15h32

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