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

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Maroc

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

    Informations forums :
    Inscription : juin 2019
    Messages : 12
    Points : 11
    Points
    11

    Par défaut Inverser un tableau selon un critere

    Bonjour à tous.
    Je travaille sur une table de 256 721 lignes et de 9 colonnes.

    La structure de mon tableau est la suivante:

    ID NNI CBRD Bdate Lact N-session velage DIM Duree
    3305 MA3305 MO 12/06/2011 2 1 12/08/2016 1 4:28
    3305 MA3305 MO 12/06/2011 2 2 12/08/2016 1 5:11
    3305 MA3305 MO 12/06/2011 2 3 12/08/2016 1 4:32
    3305 MA3305 MO 12/06/2011 2 1 12/08/2016 2 5:43
    3305 MA3305 MO 12/06/2011 2 2 12/08/2016 2 5:50
    3305 MA3305 MO 12/06/2011 2 3 12/08/2016 2 2:60
    3310 MA3310 HO 10/05/2010 6 1 02/03/2019 1 4:18
    3310 MA3310 HO 10/05/2010 6 2 02/03/2019 1 5:21
    3310 MA3310 HO 10/05/2010 6 3 02/03/2019 1 4:38
    3310 MA3310 HO 10/05/2010 6 1 02/03/2019 3 4:49
    3310 MA3310 HO 10/05/2010 6 2 02/03/2019 3 5:24
    3310 MA3310 HO 10/05/2010 6 3 02/03/2019 3 4:22

    Le id 3305 se répète dans cet exemple 6 fois (3(car j'ai 3 session)*2(car j'ai le DIM 1 et 2):
    Je veux créer des nouvelles variables duree-dim1 duree-dim2 duree-dim3 de façon à ce que le ID ne se répète que 3 fois (N-session) par ligne, c-a-d chaque ID va être représenter en 3 lignes comme le montre ce tableau que je souhaite avoir:

    ID NNI CBRD Bdate Lact N-session velage duree-dim1 duree-dim2 duree-dim3
    3305 MA3305 MO 12/06/2011 2 1 12/08/2016 4:28 5:43
    3305 MA3305 MO 12/06/2011 2 2 12/08/2016 5:11 5:50
    3305 MA3305 MO 12/06/2011 2 3 12/08/2016 4:32 2:60
    3310 MA3310 HO 10/05/2010 6 1 02/03/2019 4:18 - 4:49
    3310 MA3310 HO 10/05/2010 6 2 02/03/2019 5:21 - 5:24
    3310 MA3310 HO 10/05/2010 6 3 02/03/2019 4:38 - 4:22

    comment je peux avoir ce même tableau sachant que la variable DIM varie de 1 à 400 et la variable N-session va de 1 à 3 et sachant que j'ai des données manquantes c-a-d ce n'est pas nécessaire de trouver pour chaque ID des info sur les 400 DIM il se peut qu'il n'a que 150 par exemple ?

    Je me retourne donc vers vous....
    Merci de votre aide
    Jihane

  2. #2
    Membre éprouvé
    Inscrit en
    novembre 2009
    Messages
    496
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 496
    Points : 989
    Points
    989

    Par défaut proc transpose

    Bonjour,

    La proc transpose est tout appropriée.

    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
    data test;
      input ID NNI :$6. CBRD :$2. Bdate :ddmmyy10. Lact N_session velage :ddmmyy10. DIM Duree :time5.;
      format Bdate ddmmyy10. velage ddmmyy10. Duree time5.;
      cards;
    3305 MA3305 MO 12/06/2011 2 1 12/08/2016 1 4:28
    3305 MA3305 MO 12/06/2011 2 2 12/08/2016 1 5:11
    3305 MA3305 MO 12/06/2011 2 3 12/08/2016 1 4:32
    3305 MA3305 MO 12/06/2011 2 1 12/08/2016 2 5:43
    3305 MA3305 MO 12/06/2011 2 2 12/08/2016 2 5:50
    3305 MA3305 MO 12/06/2011 2 3 12/08/2016 2 2:60
    3310 MA3310 HO 10/05/2010 6 1 02/03/2019 1 4:18
    3310 MA3310 HO 10/05/2010 6 2 02/03/2019 1 5:21
    3310 MA3310 HO 10/05/2010 6 3 02/03/2019 1 4:38
    3310 MA3310 HO 10/05/2010 6 1 02/03/2019 3 4:49
    3310 MA3310 HO 10/05/2010 6 2 02/03/2019 3 5:24
    3310 MA3310 HO 10/05/2010 6 3 02/03/2019 3 4:22
    ;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    proc sort data=test;
      by ID NNI CBRD Bdate Lact N_session velage;
    run;
     
    proc transpose data=test out=transpo(drop=_NAME_) prefix=duree_dim;
      var Duree;
      by ID NNI CBRD Bdate Lact N_session velage;
      id DIM;
    run;
    Cordialement,

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Maroc

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

    Informations forums :
    Inscription : juin 2019
    Messages : 12
    Points : 11
    Points
    11

    Par défaut

    Bonjour, cela marche très bien merci beaucoup je vous suis reconnaissante

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

Discussions similaires

  1. Copier lignes d'un tableau selon critere dans une colonne
    Par Freudsw dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 27/02/2019, 18h15
  2. [XL-2007] Selectionner ligne tableau selon 2 criteres dont un qui a un rapport a la ligne precedente
    Par spitfire26 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 22/03/2012, 11h08
  3. Réponses: 1
    Dernier message: 05/03/2011, 08h55
  4. Probleme affichage dans tableau selon requête
    Par moulette85 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 01/03/2005, 15h44
  5. Réponses: 1
    Dernier message: 30/01/2005, 11h00

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