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

R Discussion :

jumeler des lignes avec le même identifiant


Sujet :

R

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Canada

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

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut jumeler des lignes avec le même identifiant
    Bonjour,
    je cherche une fonction ou une commande dans R qui pourrait m'aider à combiner des identifiants (ID) qui sont identiques et qui transférerai l'information (NO et DATE) des lignes avec le même identifiant en commun sur une seule ligne.

    voici la version simplifié de mon tableau:

    arbres_drf

    ID NO DATE
    051 7 2009
    051 8 2014
    054 7 2009
    054 8 2014
    055 7 2009
    055 8 2014

    je voudrais que ça donne comme résultat:

    ID NO DATE NO DATE
    051 7 2009 8 2014
    054 7 2009 8 2014
    055 7 2009 8 2014

    merci d'avance
    Gabriel Beaudoin

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Jumeler des lignes avec le même identifiant
    Bonjour,

    Voici une proposition avec la fonction reshape() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    > df <- data.frame(ID=c(051,051,054,054,055,055),
    +                  NO=c(7,8,7,8,7,8),
    +                  DATE=c(2009,2014,2009,2014,2009,2014))
    > df
      ID NO DATE
    1 51  7 2009
    2 51  8 2014
    3 54  7 2009
    4 54  8 2014
    5 55  7 2009
    6 55  8 2014
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    > df2 <- reshape(data=df,
    +                idvar="ID",
    +                v.names=c("NO","DATE"),
    +                timevar="NO",
    +                direction="wide")
    > df2
      ID NO.7 DATE.7 NO.8 DATE.8
    1 51    7   2009    8   2014
    3 54    7   2009    8   2014
    5 55    7   2009    8   2014
    Cordialement,

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Canada

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

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    oui parfait merci cela fonctionne

    je voulais savoir aussi s'il est possible de définir les colonnes comme DATE7 et DATE8 (par exemple), qui sont défini selon la variable timevar, autrement. C'est-à-dire que je voudrai que quand c'est la première mesure se soit 1 et quand c'est la deuxième que se soit 2 (ex: DATE1 et DATE2). C'est que dans mon jeu de données, j'ai des mesures autres que 7 et 8 .

  4. #4
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Jumeler des lignes avec le même identifiant
    Bonjour,

    Il faudrait générer un numéro que vous utiliseriez dans le paramètre time=. Vous pouvez aussi choisir d'utiliser la variable DATE plutôt que NO. Ainsi vos noms de variables termineront par l'année.

    Cordialement,

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Canada

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

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    parfait
    un gros merci pour l'aide

  6. #6
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Jumeler des lignes avec le même identifiant
    Bonjour,

    Suite à une demande similaire, voici la commande pour numéroter les observations par groupe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    > df <- data.frame(ID=c(051,051,054,054,055,055),
    +                  NO=c(7,8,7,8,7,8),
    +                  DATE=c(2009,2014,2009,2014,2009,2014))
    > #On numérote les observations par groupe
    > df <- df[order(df$ID),]
    > df$obsnum <- sequence(rle(as.vector(df$ID))$lengths)
    > df
      ID NO DATE obsnum
    1 51  7 2009      1
    2 51  8 2014      2
    3 54  7 2009      1
    4 54  8 2014      2
    5 55  7 2009      1
    6 55  8 2014      2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    > df2 <- reshape(data=df,
    +                idvar="ID",
    +                v.names=c("NO","DATE"),
    +                timevar="obsnum",
    +                direction="wide")
    > df2
      ID NO.1 DATE.1 NO.2 DATE.2
    1 51    7   2009    8   2014
    3 54    7   2009    8   2014
    5 55    7   2009    8   2014
    Cordialement,

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

Discussions similaires

  1. fusion lignes avec le même identifiant
    Par popoline dans le forum SAS Base
    Réponses: 3
    Dernier message: 27/05/2009, 17h14
  2. Copier les lignes avec la même largeur des colonnes
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/04/2007, 10h42
  3. [Jlist] faire des lignes avec boutons
    Par matt22 dans le forum Composants
    Réponses: 1
    Dernier message: 27/11/2006, 16h21
  4. Comment changer les couleurs des lignes avec displaytag
    Par rlnd23 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 09/10/2006, 13h52
  5. [Requete] Comment ignorer des lignes avec un LOAD DATA
    Par frangin2003 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/11/2005, 12h14

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