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 :

Supprimer des observations selon leurs fréquences


Sujet :

SAS Base

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 26
    Points : 26
    Points
    26
    Par défaut Supprimer des observations selon leurs fréquences
    Bonjour à tous,
    j'ai une base de données qui se compose Des individus en lignes et les variables: jour, rang et milk en colonnes.
    chaque individus se répète en plusieurs lignes.
    Mois j'ai intérêt à garder seulement les individus qui ONT un nombre d'observations PAR RANG supérieur à 5, Comment procéder?
    Voici un exemple

    Individus JOUR RANG MILK
    1 1 1 23
    1 2 1 24
    1 3 1 23
    1 4 1 20
    1 5 1 23
    1 6 1 22
    1 1 2 20
    1 2 2 24
    1 3 2 24
    1 4 2 20

    Dans ce cas je veux que sas me supprime tous les lignes de l'individu 1 avec le rang 2 car j'en n'ai que 4 observations.

    Merci
    cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je te propose le protocole suivant :
    1. Faire une proc freq pour obtenir la liste des individus*rang, et stocker le résultat dans une table SAS (voir l'option output du statement tables de la proc freq).
    2. Restreindre cette table à ceux qui ont été comptés moins de 5 fois
    3. Merger ta table d'origine avec cette table, et ne pas retenir ceux qui apparaissent dans cette table (voir l'option in)

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    482
    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 : 482
    Points : 1 547
    Points
    1 547
    Par défaut
    Bonjour,
    L'idéal serait de passer par une Proc SQL : Trouver le MAX de jours et faire la sélection des Obs PAR RANG dont le max de jour est supérieur à 5.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Proc sql ;
    create table Finale as
    select *, max(jour) as Max_Jour
    from Tabase
    group by individus, rang
    having Max_Jour > 5
    order by jour ;
    quit ;
    Bon courage
    Ward

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 26
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par hossward Voir le message
    Bonjour,
    L'idéal serait de passer par une Proc SQL : Trouver le MAX de jours et faire la sélection des Obs PAR RANG dont le max de jour est supérieur à 5.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Proc sql ;
    create table Finale as
    select *, max(jour) as Max_Jour
    from Tabase
    group by individus, rang
    having Max_Jour > 5
    order by jour ;
    quit ;
    Bon courage
    Ward
    ça marche parfaitement bien merci infiniment.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 26
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par Muse de Thamir Voir le message
    Bonjour,

    Je te propose le protocole suivant :
    1. Faire une proc freq pour obtenir la liste des individus*rang, et stocker le résultat dans une table SAS (voir l'option output du statement tables de la proc freq).
    2. Restreindre cette table à ceux qui ont été comptés moins de 5 fois
    3. Merger ta table d'origine avec cette table, et ne pas retenir ceux qui apparaissent dans cette table (voir l'option in)
    merci pour votre réponse ça apparait très logique

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

Discussions similaires

  1. supprimer des fichiers selon leur nom
    Par qmike dans le forum VBScript
    Réponses: 3
    Dernier message: 12/06/2012, 09h28
  2. [Débutant] supprimer des éléments selon leur type
    Par r0d dans le forum C#
    Réponses: 10
    Dernier message: 22/06/2011, 09h24
  3. Lire des fichiers selon leur nom
    Par guiguilelotois dans le forum LabVIEW
    Réponses: 4
    Dernier message: 18/05/2009, 13h55
  4. [Flash MX] Supprimer des carte selon leurs valeurs
    Par Lenalyon dans le forum Flash
    Réponses: 1
    Dernier message: 01/09/2007, 12h18
  5. taille des textbox selon leur contenu
    Par christi dans le forum ASP.NET
    Réponses: 4
    Dernier message: 08/02/2007, 16h20

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