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

SAS Base Discussion :

Sélectionner la dernière valeur d'une variable conditionnellement à un compteur


Sujet :

SAS Base

  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 Sélectionner la dernière valeur d'une variable conditionnellement à un compteur
    Bonjour,

    J'aimerais sélectionner la dernière fois où une valeur de ma variable apparaît en fonction d'un compteur.

    Ma table contient plusieurs lignes par individus avec une variable compteur cnt qui compte le nombre d'apparition de l'individu dans la base. Je cherche à sélectionner la ligne où apparaît ma variable indicatrice V=1 pour la dernière fois. Donc dans l'exemple ci dessous les lignes (ID=1 cnt=3) et (ID=2 cnt=4)

    ID cnt Variable indicatrice V

    1 1 0
    1 2 0
    1 3 1

    2 1 1
    2 2 0
    2 3 0
    2 4 1
    2 5 0

    Pour l'instant j'ai essayé pas mal de choses avec la fonction monotonic() et avec le code qui ci-dessous mais je ne trouve pas la solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    proc sql; 
    create table b as select *, max(cnt) as max_cnt
    from a
    group by IDX;
    having V=1
    quit;

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 411
    Points
    411
    Par défaut
    Bonjour,

    Tu peux utiliser le last. dans une étape data.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    proc sort data=a (where=(V=1)) out=b ;
       by id cnt ;
    run;
     
    data c;
        set b;
        by id ;
        if last.id;
    run;

  3. #3
    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,

    Ma contribution, parce que j'avais l'impression que c'était le numéro de ligne qui t'intéressait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    proc sql;
    create table result as
    select  *
    from (
    select id, max(cnt) as cnt, v,  monotonic() as numligne_tabledepart 
    from tabledepart
    group by id,v)
    where v=1;
    quit;

  4. #4
    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
    Merci beaucoup, ça fonctionne !

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

Discussions similaires

  1. [DI] Avant dernière valeur d'une variable.
    Par foxrol dans le forum Outils BI
    Réponses: 1
    Dernier message: 27/01/2013, 10h24
  2. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  3. Dernière valeur d'une variable dans une boucle.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/12/2007, 20h34
  4. afficher dans une boite de dialogue la valeur d'une variable
    Par micknic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/07/2005, 09h25
  5. Intercepter le changement de valeur d'une variable
    Par Captain_JS dans le forum C++Builder
    Réponses: 5
    Dernier message: 07/01/2005, 08h04

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