p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité régulier
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : novembre 2012
    Messages : 41
    Points : 5
    Points
    5

    Par défaut Macro SAS cherche erreur

    Bonsoir Cher internautes ,

    j'ai créer une macro toute simple mais je n'arrive pas a obtenir ce que je recherche!
    Si l'un de vous pourriez me corriger , ce serait fort sympatique

    Voici la macro :
    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
    16
    17
    18
    19
    20
    21
    22
    %macro ensmag ( mag, volumes) ;
    data malib.irism ;
    set malib.iris ;
    txpenetration = clients / menages ;
    if txpenetration<0 then txpenetration=0 ;
    where &mag ;
    run;
    proc sort data = malib.iris2 ;
    by descending txpenetration;
    run;
    data malib.irism;
    set malib.irism ;
    retain cumul 0;
    cumul= cumul + menages;
    run;
    data malib.irism;
    set malib.irism ;
    where cumul <= &volumes ;
    run;
    %mend  ;
     
    %ensmag ( mag="B" , volumes=36420) ;
    la variable volume est bien appliquée mais pas celle de mag .

    Il ne se preoccupe pas de selectionner Mag avec la modalité B.

    Merci par avance

  2. #2
    Membre chevronné
    Femme Profil pro
    SAS FRANCE - Support Clients France et Europe
    Inscrit en
    février 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : SAS FRANCE - Support Clients France et Europe
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 273
    Points : 768
    Points
    768

    Par défaut

    Bonjour,

    Je pense que vous avez confondu :
    - le paramètre de la macro
    %ensmag ( mag="B" , volumes=36420) ;

    - et la requête
    WHERE &mag ;

    %ensmag ( mag="B" [...] indique que vous créez une macro-variable locale MAG dont la valeur est "B".

    WHERE &mag ; est traduit par
    WHERE "B" ;
    j'imagine que vous voulez plutôt
    where mag="B" ;


    Je dirais donc qu'il faut revoir la manière de coder le where pour qu'on est bien une condition testée, comme dans cet exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    %macro m (n=);
    data _null_ ;
      set sashelp.class ;
      where name="&n" ;
    run ;
    %mend ;
    %m (n=Alice) ;
    Cordialement,
    Géraldine Cade-Deschamps
    Support Clients SAS

Discussions similaires

  1. [Macro] procedures ou Macros sas SVM
    Par cyberboy00 dans le forum Macro
    Réponses: 9
    Dernier message: 11/07/2008, 09h35
  2. [Macro] Erreur macro sas
    Par bibette dans le forum Macro
    Réponses: 2
    Dernier message: 07/07/2008, 22h04
  3. exécution de Macro SAS
    Par CélineM dans le forum Macro
    Réponses: 2
    Dernier message: 02/04/2008, 15h06
  4. Macro Q_OBJECT et erreurs de link
    Par pscheven dans le forum Qt
    Réponses: 7
    Dernier message: 21/03/2008, 11h32
  5. [débutant en C]Cherche erreur et astuce
    Par gdumouli dans le forum C
    Réponses: 44
    Dernier message: 09/09/2006, 16h46

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