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 :

Fonctionnement du & dans le langage macro


Sujet :

Macro

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Fonctionnement du & dans le langage macro
    Bonjour !

    je revient pour une nouvelle question. Je suis vraiment en train de me prendre le chou avec les &. Je m'explique :

    j'ai recupéré le nom des 32 académies françaises. Ainsi ACA_1 me donne aix, ACA_2 me donne amiens, etc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    proc freq data=data noprint;
    tables academie/out=temp;
    run;
    data _null_;
    set temp;
    call symputx(compress("aca_" !! _N_),Academie,"G");
    run;

    par la suite, je l'automatise pour me creer une table par académie par rapport à 4 autres existantes
    je précise que &etab est un parametre de mon macro programme, qui fait reference au type d'etablissement
    (M pour maternelle, E pour ecole, C pour college, etc ...)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    %do i=1 %to 32;
     
    data &&ACA_&i._&etab;
    set table1_&&ACA_&i
    table2_&&ACA_&i	
    table3_&&ACA_&i
    table4_&&ACA_&i;
    run;
    %end;

    On arrive là où je bloque.
    table1_&&ACA_&i me donne bien table1_aix (par exemple)
    mais
    &&ACA_&i._&etab ne renvoie pas aix_M.
    Le probléme est là, comment assembler les macro-variables afin d'obtenir : academie_etab ?


    Dsl si le probleme est bateau, les & sont quelque chose que je ne maitrise pas vraiment et ça fait un peu trop longtemps que je me prends la tête.
    Si tout n'est pas clair, n'hesitez pas à me poser une question.

    Je vous remercie par avance !


    EDIT : bon au final, je viens d'essayer en mettant &etab_&&ACA_&i et dans ce cas il m'écrit bien etab_académie (m_aix par exemple). Cela resolve mon probleme, mais si vous avez une solution pour l'ecrire dans l'autre sens, je suis preneur

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 99
    Points : 202
    Points
    202
    Par défaut
    Hey!

    Y'a sans doute mieux (comprendre moins bourrin) mais si c'est pour juste nommer une table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data %sysfunc(compress(&&aca_&i. _ &etab.));
    "Statistics is the grammar of science" - K. Pearson

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Ah oui exact, je n'ai pas pensé à utiliser la fonction compress ^^

    non mais je pense que l'idéal, dans mon cas qui ne trouvait pas, c'est d'inverser les deux mv, vu qu'ils sortent ce que je souhaite enfin, l'ordre n'a pas d'importance pour mon cas

    Merci de m'avoir répondu tout de même !

  4. #4
    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

    &&ACA_&i.._&etab marche chez moi.

    bon courage.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Ah oui deux points, ça doit marcher ! j'essaierai lundi au taf

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/04/2014, 16h32
  2. Macro ne fonctionne pas dans une étape DATA
    Par cladoo dans le forum Macro
    Réponses: 2
    Dernier message: 07/11/2011, 09h36
  3. ouvrir fichier Excel dans page HTML : macro ne fonctionne pas
    Par bella1 dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 30/06/2011, 09h50
  4. Réponses: 0
    Dernier message: 02/02/2011, 14h55
  5. Réponses: 1
    Dernier message: 27/10/2005, 21h48

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