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 :

Boucle "DO" dans macro programme


Sujet :

Macro

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 1
    Par défaut Boucle "DO" dans macro programme
    Bonjour,

    Je m'explique :

    Je souhaite réaliser une macro qui s'effectuera pour chaque ligne de ma table où l'on trouve à l'intérieur une boucle "DO TO" qui prend comme borne une valeur de la ligne.

    Voici le code allégé que j'ai réalisé, "duree_rest" étant une variable de ma table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    %MACRO calcul_flux();
     
    a=duree_rest;
    %do m=1 %to a;
    p=p+m;
    %End;
     
    PRC=m;
    %put &PRC; 
     
    %MEND calcul_flux;
    le fait de prendre "duree_rest" en paramètre empêche l'exécution du programme.

    Je vous remercie par avance pour vos réponses

    Cordialement

  2. #2
    Membre éprouvé
    Homme Profil pro
    Analyste - Information médicale
    Inscrit en
    Mars 2012
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste - Information médicale
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2012
    Messages : 72
    Par défaut
    Bonjour,

    tu veux compter ligne par ligne les sommes :
    1+2+3+...+a
    où "a" est une variable de ta base, c'est bien ça ?

    Si oui, deux solutions possibles : somme arithmétique ou diretement une boucle :

    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
    data test; 
    input boucle $ ;
    cards ;
    1
    5
    8
    25
    ;
    run;
     
    data res;
    set test;
    methode1=boucle*(boucle+1)/2;
    methode2=0;
    do i=1 to boucle;
     methode2=methode2+i;
    end;
    drop i;
    run;

Discussions similaires

  1. Erreur dans macro programme
    Par 8twilight8 dans le forum Macro
    Réponses: 5
    Dernier message: 04/05/2009, 11h53
  2. Quote dans macro-variable
    Par fafabzh6 dans le forum Macro
    Réponses: 3
    Dernier message: 23/04/2009, 17h39

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