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 :

Faire des tableaux croisés pour plusieurs variables avec une macro


Sujet :

Macro

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Faire des tableaux croisés pour plusieurs variables avec une macro
    Salut,

    Je n'arrive pas à comprendre ce qui ne fonctionne pas avec mon programme.

    J'essaie de faire des tableaux croisés pour des variables prises 2 à 2 (variables portant le même nom mais différent en bout de chaine par cat1 ou cat2 ). Le programme ci-dessous est supposé me faire une table de fréquence entre var1_cat1 et var1_cat2 une autre table entre var2_cat1 et var2_cat2 etc.. Puis il m'exporte le résultat dans une table appelé table_var1_cat12 et enfin il me la télécharge en local.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    %let variable = "var1 var2 var3 var4";
    %macro table_croise;
    proc freq data=table noprint;
    %do i=1 %to 4;
    table %scan(&variable.,&i.," ")_cat1 * %scan(&variable.,&i.," ")_cat2 / out=table_%scan(&variable.,&i.," ")_cat12;
    run;
    proc download data=table_%scan(&variable.,&i.," ")_cat12;
    run;
    %end;
    %mend table_croise;
    %table_croise;
    Lorsque je lance le programme, sas me sous-ligne en rouge l'instruction table en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ERREUR 180-322: Instruction incorrecte ou mal utilisé

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 482
    Points : 1 547
    Points
    1 547
    Par défaut
    Bonjour,
    Ta macro est correcte. Il suffit de mettre « proc freq data=table noprint ;» à l’intérieur de la boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    %let variable = "var1 var2 var3 var4";
    %macro table_croise;
    %do i=1 %to 4;
    proc freq data=table noprint ;
    table %scan(&variable.,&i.," ")_cat1 * %scan(&variable.,&i.," ")_cat2 / out=table_%scan(&variable.,&i.," ")_cat12;
    run ;	
    proc download data=table_%scan(&variable.,&i.," ")_cat12;
    run ;	
    %end;
    %mend table_croise;
    %table_croise;
    Ward

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    En effet
    Merci

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/11/2014, 17h12
  2. Réponses: 2
    Dernier message: 15/05/2014, 12h58
  3. fusionner plusieurs cellules avec une macro
    Par ANGLIQUESOIG dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/06/2013, 17h01
  4. Renommer des variables avec une macro SAS
    Par zellinho dans le forum Macro
    Réponses: 15
    Dernier message: 21/03/2011, 18h57
  5. Faire des tableaux croisés dynamique
    Par richard038 dans le forum Bases de données
    Réponses: 6
    Dernier message: 12/04/2006, 22h51

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