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 :

Utilisation de macro instructions dans une étape DATA


Sujet :

Macro

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Points : 224
    Points
    224
    Par défaut Utilisation de macro instructions dans une étape DATA
    Salut,

    Je voulais savoir s'il y avait une règle sur l'utilisation des macro instructions
    %if %then %do %end
    %do %while %end
    ...
    dnas une étape data, car j'ai remarqué que lorsque l'on utilisais soit une macro instruction, soit une condition normale:
    if then do
    do while
    ...
    on obtient pas le même résultat.

    Merci.

  2. #2
    Membre éprouvé
    Avatar de steelspirit
    Homme Profil pro
    SAS discute
    Inscrit en
    Janvier 2008
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SAS discute
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 472
    Points : 916
    Points
    916
    Par défaut
    Pour un même résultat il y a une grosse différence

    %if, %do etc ... sont du langage macro. Dans l'exécution d'un programme, ce langage est interprété en premier ensuite SAS compile et exécute le langage de base.

    Ex :
    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
     
    data test;
       %do i=1 %to 3;
           var&i=&i;
       %end;   
    run;
     
    SAS commence par lire le langage macro et le traduit comme ça :
     
    data test;
       var1=1;
       var2=2;
       var3=3;
    run;
     
    Il compile et execute ensuite le code SAS
    maintenant il faut pas mélanger les conditions et boucles macro avec le langage de base ! Si tu obtiens le même résultat alors ça veut dire que tes boucles ou condition macro ne servent à rien.

    De manière générale : dès que tu utilise des macro-variables, utilise le langage macro.
    Si tu utilise les variables et données de ta table utilise le langage de base.

    Steel

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

Discussions similaires

  1. Condition IF dans une étape Data
    Par SASMAN dans le forum SAS Base
    Réponses: 13
    Dernier message: 12/06/2012, 23h10
  2. [DATA] Gestion des erreurs dans une étape DATA
    Par JeromeMATHIAS dans le forum SAS Base
    Réponses: 12
    Dernier message: 01/02/2012, 23h50
  3. Macro ne fonctionne pas dans une étape DATA
    Par cladoo dans le forum Macro
    Réponses: 2
    Dernier message: 07/11/2011, 09h36
  4. Boucle dans une étape data
    Par ueshiba dans le forum Macro
    Réponses: 3
    Dernier message: 26/05/2009, 11h21
  5. Réponses: 3
    Dernier message: 11/08/2008, 15h56

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