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 :

Enlever les valeurs de deux colonnes en supprimant les doublons de l'une


Sujet :

R

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Points : 37
    Points
    37
    Par défaut Enlever les valeurs de deux colonnes en supprimant les doublons de l'une
    Bonjour,

    J'ai un petit problème.
    On va dire que je recupère d'une table mysql un dataframe avec deux colonnes.
    J'aimerai éliminer les doublons de la première colonne et garder les valeurs de val2 associées.
    J'ai pensé à faire un unique sur val1 et unique sur val2 (préalablement convertis en vecteur) mais ça va bugger pour le cas ou val=2 . Je vais me retrouver avec val1 et val2 de taille différente...

    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
     
    val1      val2
    1          2
    1          2
    1          2
    2          2
    2          2
    3          7
    3          7
    4          3
    4          3
     
    Et j'aimerai avoir :
     
    val1  val2
    1       2
    2       2
    3       7
    4       3
    Si vous avez une idée, je débute en R, j'ai regardé un peu la doc et je vais continué mais si quelqu'un peut m'éviter de perdre du temps à chercher.

    Merci!

  2. #2
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    Je pense que le code suivant fera l'affaire (si j'ai bien compris le problème ^^) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    val1<-c(1,1,1,2,2,3,3,4,4)
    val2<-c(2,2,2,2,2,7,7,3,3)
    V<-cbind(val1,val2)
     
    unique(V)
     
         val1 val2
    [1,]    1    2
    [2,]    2    2
    [3,]    3    7
    [4,]    4    3
    Bonne journée

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  3. #3
    Membre du Club
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    Petite précision concernant ce vieux sujet, comment supprimer les doublons de la 1ère colonne sans tenir compte des valeurs de la 2ème colonne?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    val1<-c(1,1,1,2,2,3,3,4,4)
    val2<-c(2,4,6,1,2,7,34,4,3)
    V<-cbind(val1,val2)
    Et j'aimerais avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    val1  val2
    1       2
    2       1
    3       7
    4       3
    Je n'arrive pas à utiliser "unique(V$val1)", même après avoir converti V en list.
    R me répond "NULL". Il parle de moi?

    Comment faire?

  4. #4
    Membre confirmé
    Homme Profil pro
    MCU
    Inscrit en
    Juillet 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : MCU
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 185
    Points : 486
    Points
    486
    Par défaut
    Bonjour,

    Vous n'auriez pas fait une erreur dans le résultat que vous voulez obtenir? Si vous voulez sélectionner la première occurence d'une valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    V[! duplicated(V[, 1]), ]
    HTH

    Vincent

  5. #5
    Membre du Club
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Points : 57
    Points
    57
    Par défaut
    Merci!

    Vous n'auriez pas fait une erreur dans le résultat que vous voulez obtenir?
    Non, pas d'erreur. J'ai un tableau avec une dizaine de colonnes et parmi les lignes de la 1ère colonne se trouvent des groupes de caractères en doublons (comme dans l'exemple de ce post).
    Mon but est bien de ne prendre comme paramètre que la 1ere colonne.

  6. #6
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    Le code suggéré par Vincent fonctionne parfaitement si vous souhaitez ne conserver que les premières occurences de chacune des valeurs de la première colonne "val1".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    val1<-c(1,1,1,2,2,3,3,4,4)
    val2<-c(2,4,6,1,2,7,34,4,3)
    V<-cbind(val1,val2)
     
    V[!duplicated(V[,1]),]
         val1 val2
    [1,]    1    2
    [2,]    2    1
    [3,]    3    7
    [4,]    4    4
    Après, si le résultat que vous souhaitez est vraiment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    val1 val2
    1 2
    2 2
    3 7
    4 3
    Alors vous avez mal posé le problème (ou mal construit votre matrice "V"), car la seconde ligne de ce résultat (2 2) correspond à la seconde occurence de l'élément 2 dans V.
    Si c'est donc bien cette matrice que vous souhaitez obtenir, il va falloir préciser un peu les règles de sélection qui ont lieues ici...

    Bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  7. #7
    Membre du Club
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Points : 57
    Points
    57
    Par défaut
    Alors vous avez mal posé le problème (ou mal construit votre matrice "V")
    En effet! Désolé même après relecture je n'avais toujours pas relevé l'erreur. Du coup, j'ai réédité le message précédent.

  8. #8
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Donc la solution proposée par Vincent correspond bien à vos besoins ? (un petit pouce vert dans ce cas )

    De plus, merci de ne pas éditer un message sur le forum après qu'il ait reçu des réponses, sinon la discussion finit par ne plus avoir de sens !

    Bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

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

Discussions similaires

  1. Comparer les valeurs de deux colonnes d'une table
    Par nguim dans le forum Langage SQL
    Réponses: 9
    Dernier message: 14/03/2014, 12h30
  2. Comparer les valeurs de deux colonnes d'une feuille excel
    Par charrynsasi dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/12/2012, 15h40
  3. Comparer deux colonnes puis supprimer les lignes en trop
    Par Theka dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/07/2011, 14h38
  4. Réponses: 2
    Dernier message: 30/06/2011, 10h37
  5. [DeskI XiR2] Comparer les valeurs de deux colonnes
    Par EmmanuelleC dans le forum Débuter
    Réponses: 2
    Dernier message: 27/02/2009, 09h45

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