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

Débutez Discussion :

extraction de plusieurs ligne ensembles dans une colonne avec conditions sur une autre colonne


Sujet :

Débutez

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

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

    Informations forums :
    Inscription : Août 2011
    Messages : 6
    Points : 4
    Points
    4
    Par défaut extraction de plusieurs ligne ensembles dans une colonne avec conditions sur une autre colonne
    Bonjour ,

    Je cherche un programme pour nettoyer mes données:
    Voici le problème:
    J,ai 4 colonnes: A B C D
    Dans A: nom
    Dans B nombre des répétitions d'un individu dans A
    Dans C, statistique (N (nombre), min, max et écart-type)
    dans D: le prix de A

    Je voudrai extraire seulement les individus ayant N>2 mais tout en prenant avec N le min, max et écart-type.

    Merci

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Je ne suis pas sûr d'avoir bien compris tes données mais a priori si tu fais une proc Transpose (by A B D) de la colonne C pour mettre tes stats dans autant de colonnes différentes, il n'y aura qu'un WHERE à faire.
    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 work.test ;
      INPUT a $ /* nom */
            b   /* nb de répétitions dans A */
    		c   /* stat : N, min, max, écart-type */
    		d   /* prix associé à A */
    		;
    DATALINES ;
    carottes 18 120 2.35
    carottes 18 23 2.35
    carottes 18 68 2.35
    carottes 18 32.333 2.35
    boeuf 25 1800 6.99
    boeuf 25 8 6.99
    boeuf 25 789 6.99
    boeuf 25 4568.65 6.99
    ;
    RUN ;
    PROC TRANSPOSE DATA=work.test
                    OUT=work.res (DROP=_name_
                                 WHERE=(stat1 > 100))
                 PREFIX=stat ;
      VAR c ;
      BY a b d NOTSORTED ;
    RUN ;

  3. #3
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    Si je comprends bien ta colonne C regroupe 4 statistiques (C'est donc une chaine de caractere)... En ce sens il suffit de poser une condition sur une sous-chaine de cette variable

    mais je rejoins la remarque d'Olivier: fournit nous un exemple de tres donnees et de ce que tu souhaites obtenir.

    Manoutz

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

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

    Informations forums :
    Inscription : Août 2011
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Manoutz Voir le message
    Si je comprends bien ta colonne C regroupe 4 statistiques (C'est donc une chaine de caractere)... En ce sens il suffit de poser une condition sur une sous-chaine de cette variable

    mais je rejoins la remarque d'Olivier: fournit nous un exemple de tres donnees et de ce que tu souhaites obtenir.

    Manoutz
    Bonjour

    Merci de vos réponses. Olivier a compris ce que je voulais dire sauf a la dernière colonne Voilà a quoi ressemble mes données :
    a (nom) b(fréquence) c (stat) d (prix)
    carottes 3352 N 3352
    carottes 3352 MIN 0
    carottes 3352 MAX 12000
    carottes 3352 mean 463
    carottes 3352 SD 701
    bœuf 9 N 9
    bœuf 9 MIN 234
    bœuf 9 MAX 293
    bœuf 9 mean 258
    bœuf 9 SD 17

    ce que je voudrais faire c'est prendre les noms dont le N est supérieur a 3.
    (mais aussi garder les MIN-Max mean et SD)
    J'ai essayé ce que Olivier a proposé mais vu que je n’étais pas explicite ça n'a pas donné les résultats que j'ai attendu.

    Merci encore

  5. #5
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Alors voilà ce que ça devient (on utilise la stat pour faire des noms de variables).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PROC TRANSPOSE DATA=work.test
                    OUT=work.res (DROP=_name_
                                 WHERE=(n > 3)) ;
      VAR d ;
      ID c ;
      BY a b NOTSORTED ;
    RUN ;

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

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

    Informations forums :
    Inscription : Août 2011
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par olivier.decourt Voir le message
    Alors voilà ce que ça devient (on utilise la stat pour faire des noms de variables).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PROC TRANSPOSE DATA=work.test
                    OUT=work.res (DROP=_name_
                                 WHERE=(n > 3)) ;
      VAR d ;
      ID c ;
      BY a b NOTSORTED ;
    RUN ;
    C'est résolu

    Merci beaucoup!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/06/2011, 12h56
  2. Export d'une table avec condition sur une autre
    Par Hobbi1 dans le forum Import/Export
    Réponses: 2
    Dernier message: 25/03/2010, 14h35
  3. Réponses: 1
    Dernier message: 15/02/2010, 10h15
  4. Réponses: 1
    Dernier message: 03/05/2009, 06h40
  5. Requete SUM sur une table avec critère sur une autre
    Par wail00 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/05/2007, 16h58

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