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 :

Suppression selon condition


Sujet :

SAS Base

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Suppression selon condition
    Bonjour,

    j'ai un petit problème et pas envie de passer par 50 manip...
    Je suis vraiment novice aussi, merci de votre patiente si je comprends rien^^

    Voilà mon pb:

    j'ai plusieurs lignes par patients avec des dates et surtout une variable GAP ( de 0 à 327 jours au maximum).
    Ce que j'aimerais c'est supprimer les patients qui ne contienne pas de GAP supérieur à 90 jours.
    MAIS, je dois garder toutes les observations pour ces patients et pas seulement garder les GAP supérieur à 90.

    Si je suis pas clair je vous illustre ça


    Patient1: Date1 GAP125
    Patient1: Date2 GAP0
    Patient1: Date3 GAP0
    Patient1: Date4 GAP55
    Patient2: Date1 GAP0
    Patient2: Date2 GAP0
    Patient2: Date3 GAP3
    Patient2: Date4 GAP60

    Donc ce que je veux c'est supprimer le patient 2 et obtenir ça:

    Patient1: Date1 GAP125
    Patient1: Date2 GAP0
    Patient1: Date3 GAP0
    Patient1: Date4 GAP55


    Merci beaucoup,
    Théo

  2. #2
    Membre éprouvé
    Avatar de m.brahim
    Homme Profil pro
    SAS / BIG DATA
    Inscrit en
    Juillet 2011
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SAS / BIG DATA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 461
    Points : 1 119
    Points
    1 119
    Billets dans le blog
    14
    Par défaut
    Bonjour,

    Je te propose cette solution:
    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
     
    data test;
    input patient $ date $ gap$;
    cards;
    Patient1  Date1 GAP125
    Patient1  Date2 GAP0
    Patient1  Date3 GAP0
    Patient1  Date4 GAP55
    Patient2  Date1 GAP0
    Patient2  Date2 GAP0
    Patient2  Date3 GAP3
    Patient2 Date4 GAP60
    patient3 date1 GAP91
    ; run;
     
    proc sql;
    create table test1 as select t1.*  
    from test as t1 group by patient 
    having max(input(substr(gap,4),8.))>90 
    ;
    quit;
    Cordialement
    Certification des Talents de la programmation In Memory Statistics sur HADOOP:
    http://talents-imstat.groupe-avisia....avance?uid=162

  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,
    Une solution sans SQL :
    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
    25
    26
    data Table_1 ;
    input Patient $ Date $ GAP $;
    cards;
    Patient1: Date1 GAP125
    Patient1: Date2 GAP0
    Patient1: Date3 GAP0
    Patient1: Date4 GAP55
    Patient2: Date1 GAP0
    Patient2: Date2 GAP0
    Patient2: Date3 GAP3
    Patient2: Date4 GAP60
    ; run ;  
     
    data Table_2 ;
    flag=0 ;
    do until (last.Patient);
       set Table_1 ; by patient notsorted ;
      if compress(GAP, 'GAP')*1 >90 then flag=1 ;
     
    end;   
    do until (last.Patient);
       set Table_1 ; by patient notsorted ;
       if flag then output;
       drop flag ;
    end;
    run;
    Ward

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup,

    je test ces deux manip demain matin et je vous tiens au courant!

    Bonne journée

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Merci!
    Bonjour,

    ces deux méthodes furent d'une extraordinaire efficacité!

    Merci encore et désolé pour mon orthographe désastreux dans mon premier message.

    Théo.

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

Discussions similaires

  1. [Toutes versions] Macro suppression de lignes selon conditions via userform
    Par mattmata dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2012, 13h08
  2. [Débutant] Suppression de lignes selon condition
    Par Bubulle31 dans le forum MATLAB
    Réponses: 3
    Dernier message: 01/08/2011, 16h58
  3. [VB.net] Générer une date selon condition
    Par WriteLN dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/10/2005, 16h12
  4. [VB.NET] Changer de classe selon condition
    Par daner06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/10/2004, 10h04
  5. DLLs chargées selon condition
    Par Benjamin GAGNEUX dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 12/08/2004, 18h14

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