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 avec une variable DATE ?


Sujet :

Macro

  1. #1
    Membre du Club
    Homme Profil pro
    Statisticien
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 63
    Points
    63
    Par défaut Boucle do avec une variable DATE ?
    Bonjour,

    J'ai une variable date qui a un pas aléatoire d'un individu à l'autre.

    Comment faudrait-il faire pour calculer -12 mois pour chaque modalité de cette variable date ?

    Voici le code que j'ai pour l'instant, mais qui ne fonctionne pas (je suis passé par un compteur des modalités de ma variable pour la 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
     
    proc sort data=cohorte out=z; by date_ref; run;
     
    data z; set z;
    by date_ref;
    if first.ident then cpt=1; else if first.date_ref then cpt+1;
    run;
     
     
    data _null_;
    CALL SYMPUT('date',intnx("month",date_ref,-12,"end"));
    run;
     
    data z; set z;
    do i=cpt to cpt;
    if date_entree_cohorte<=&date.&i. then var="OK";
    end;
    run;
    Le calcul final ne marche pas : je veux voir quels individus ont une date d'entrée dans la cohorte qui est inférieure à ma date de référence-12 mois.
    Merci par avance si quelqu'un a une solution.

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 99
    Points : 202
    Points
    202
    Par défaut
    Bonjour,

    Sans regarder autre chose que la boucle tu as un problème non?
    Citation Envoyé par AllXS7117 Voir le message
    "Statistics is the grammar of science" - K. Pearson

  3. #3
    Membre du Club
    Homme Profil pro
    Statisticien
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 63
    Points
    63
    Par défaut
    Pourquoi, que faudrait-il de plus ?
    D'habitude je mets des macro-variables à la place de ma variable compteur et ça fonctionne.

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 99
    Points : 202
    Points
    202
    Par défaut
    Ben déjà, je ne vois pas d'incrémentation de ta boucle.

    Et je ne vois pas non plus quand est-ce que tu créées des macro-variables datei ...
    "Statistics is the grammar of science" - K. Pearson

  5. #5
    Membre du Club
    Homme Profil pro
    Statisticien
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 63
    Points
    63
    Par défaut
    Ok, je pensais que les boucles SAS pouvaient reconnaître une variable numérique comme une incrémentation.

    Le but est d'avoir pour chaque date_ref (dont la macro-variable &date. est créée avec le call symput et le &i. avec la boucle), M-12. Je pense qu'il y a des erreurs de langage et des erreurs logique, mais je maîtrise pas les boucles do à la base.

  6. #6
    Membre éclairé

    Femme Profil pro
    SAS FRANCE - Support Clients France et Europe
    Inscrit en
    Février 2010
    Messages
    289
    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 : 289
    Points : 886
    Points
    886
    Par défaut
    Bonjour,

    Pourrait-on avoir un extrait de la table afin d'avoir une idée de sa structure s'il-vous-plaît ?

    Je propose ce programme, qui compare la 1ère date de chaque individu avec la date de référence moins 12 mois.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    data Resultat ;
      set data1 ;
      if first.ident and date_entree_cohorte<=intnx("month",date_ref,-12,"end") then output;
      run ;
    Les boucles permettent de faire un traitement sur une observation, et non pas de balayer une table. C'est pour cette raison que la logique de votre programme ne colle pas.
    De plus, les macros &date.&i n'existent pas : vous avez créé une seule macro &DATE, et &i n'existe pas non plus.
    Cordialement,

    --
    Géraldine CADE-DESCHAMPS
    Consultante ▪ Support Clients SAS
    Tel: +33 1 60 62 12 12 ▪ support@sas.com
    www.sas.com/france
    SAS® … THE POWER TO KNOW®

  7. #7
    Membre du Club
    Homme Profil pro
    Statisticien
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 63
    Points
    63
    Par défaut
    ça fonctionne!

    merci de votre aide et des explications sur les boucles

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/03/2015, 05h53
  2. Réponses: 2
    Dernier message: 08/07/2013, 13h39
  3. [AC-2010] Générer une date avec une variable et les données de la date active
    Par zedcv dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 20/07/2012, 13h13
  4. Réponses: 18
    Dernier message: 12/10/2011, 19h27
  5. Requête selection avec une variable de date
    Par kahmsin dans le forum Access
    Réponses: 7
    Dernier message: 20/11/2005, 19h38

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