Tri data frame

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Barbara Pirat
Messages : 6
Enregistré le : 26 Juin 2015, 15:40

Tri data frame

Messagepar Barbara Pirat » 31 Juil 2015, 09:12

Bonjour,
J'aurais besoin d'un petit coup de main pour ma procédure. Je veux supprimer les lignes de ma data frame qui sont redondantes.

Code : Tout sélectionner

> df<-data.frame(a,b,c)
> df
   a          b          c
1  1 -0.6839967  1.2185803
2  2 -0.1208764 -1.1634314
3  3 -0.6554939 -0.4300716
4  4  0.4780831 -0.3157923
5  1  1.4192880 -1.2551941
6  5  0.2148610 -0.3263570
7 10 -2.1030674  1.3067132
8  8  0.4427177  0.5742001
9  3  0.4276395  0.3493616

et donc je veux supprimer les lignes dont la valeur de a est déjà donné. Ce qui me donnerait dans ce cas :

Code : Tout sélectionner

df
   a          b          c
1  1 -0.6839967  1.2185803
2  2 -0.1208764 -1.1634314
3  3 -0.6554939 -0.4300716
4  4  0.4780831 -0.3157923
6  5  0.2148610 -0.3263570
7 10 -2.1030674  1.3067132
8  8  0.4427177  0.5742001

J'ai essayé avec la fonction "unique" mais j'obtiens une liste avec uniquement les valeurs de a alors que je veux garder les autres colonnes de ma data frame.

J'espère avoir était claire dans mon problème . Merci par avance
Cordialement,
Barbara

Navarre Julien
Messages : 367
Enregistré le : 20 Avr 2012, 08:27

Re: Tri data frame

Messagepar Navarre Julien » 31 Juil 2015, 09:16

Bonjour,

si le seul critère c'est l'ordre d'apparition de la valeur de a, vous pouvez utilisez duplicated :

Code : Tout sélectionner

datas[!duplicated(datas$a), ]

   a          b          c
1  1 -0.6839967  1.2185803
2  2 -0.1208764 -1.1634314
3  3 -0.6554939 -0.4300716
4  4  0.4780831 -0.3157923
6  5  0.2148610 -0.3263570
7 10 -2.1030674  1.3067132
8  8  0.4427177  0.5742001

Barbara Pirat
Messages : 6
Enregistré le : 26 Juin 2015, 15:40

Re: Tri data frame

Messagepar Barbara Pirat » 31 Juil 2015, 09:22

Merci beaucoup c'est exactement ça ! Merci aussi pour la rapidité de votre réponse Julien.
Cordialement,
Barbara


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité