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 :

Une fonction comme %eval


Sujet :

Macro

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 36
    Points : 42
    Points
    42
    Par défaut Une fonction comme %eval
    Bonjour,

    J'ai à ma disposition notamment les variables suivantes dans ma table :

    dat1 dat2 ...
    2012 2006
    2011 2009

    J'aimerai créer les variables suivantes :
    somme_%eval(dat1-dat2) = ... ;

    ainsi j'aurai autant de variable que j'ai d'écart entre dat1 et dat2.

    Mais la fonction %eval ne prend pas en compte ce genre de calcul. Elle considère ces deux variables comme des caractères alors que ce sont des variables et qu'à l'intérieur ce sont des numériques. Existe-t-il une fonction qui prend en charge ce traitement ?

  2. #2
    Membre actif
    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
    Points : 255
    Points
    255
    Par défaut
    Bonjour,
    je ne suis pas sûr de bien comprendre ce que tu veux.
    Peut-être que le "transpose" peut t'aider ?

    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;
    input date1 date2;
    diff=date1-date2; ind=1; obs=_n_;
    cards;
    2012 2006
    2012 2006
    2011 2009
    ;
    run;
     
    proc transpose data=test out=res (drop=_NAME_) prefix=somme_;
    by obs date1 date2;
    var ind;
    id diff;
    run;

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    483
    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 : 483
    Points : 1 552
    Points
    1 552
    Par défaut
    Bonjour,
    Voici une version 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
    23
    24
     
    data test ;
    input dat1 dat2 ;
    diff=dat1-dat2; 
    cards ;
    2012 2006
    2011 2009
    2013 2010
    ;  run ;
     
    data _null_ ;
    set test ;
    call symputx(cats('mac', _N_), diff) ;
    call symputx('nob', _N_) ;  
    run ;
     
    %macro ecart ;
    data test ;
    set test ;
    %do i=1 %to &nob ;
    Somme_&&mac&i="x" ;
    %end ;
    run ;   
    %mend ecart ;  %ecart ;
    Ward

Discussions similaires

  1. [Langage] une fonction comme argument d'une fonction?
    Par Krishna dans le forum Langage
    Réponses: 9
    Dernier message: 15/10/2008, 21h31
  2. Réponses: 0
    Dernier message: 26/07/2007, 16h22
  3. écrire une fonction comme first
    Par elliott dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 15/07/2007, 08h52
  4. [VB6]Une fonction comme Trim(), mais pour les "-"
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 13/04/2006, 20h43
  5. Passer une fonction comme argument à une fonction
    Par Cocotier974 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/06/2004, 14h41

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