Table de doublons

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

Montana ROQUILLET
Messages : 43
Enregistré le : 24 Juil 2017, 06:39

Table de doublons

Messagepar Montana ROQUILLET » 05 Mar 2019, 10:08

Bonjour,

Je souhaiterai créer une table avec tous les doublons d'une variable. J'ai une table clients avec comme variables l'identifiant client, le numéro de commande et le montant de la commande. Malheureusement, des numéros de commandes identiques ont été attribués à des identifiants clients différents par erreur et j'aimerai avoir une table contenant tous ces doublons de numéros de commandes pour pouvoir analyser l'erreur.

Exemple :
ID_CLIENT NUM_COMMANDE MONTANT
A59372 63825149 25,54
B69025 92586724 68,35
T68251 63825149 12,47
J36725 69276358 92,30

Ici j'aimerai avoir une table regroupant les première et troisième lignes, où le numéro de commande est identique.
Comment faire ?

Merci de votre aide.

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Table de doublons

Messagepar Pierre-Yves Berrard » 05 Mar 2019, 10:15

Bonjour,
Vous avez besoin de la fonction duplicated (qu' il faudra appliquer à donnees$NUM_COMMANDE).
PY

Montana ROQUILLET
Messages : 43
Enregistré le : 24 Juil 2017, 06:39

Re: Table de doublons

Messagepar Montana ROQUILLET » 05 Mar 2019, 10:30

Merci pour votre retour.

Voici le code que j'ai utilisé :
Clients$doublons <- ifelse (duplicated(Clients$NUM_COMMANDE), 1,0)

L'idée étant de créer une variable qui affiche 1 ou 0 suivant que le numéro de la commande existe en plusieurs fois ou non, mais il m'affiche 0 pour la première occurrence qu'il trouve, puis 1 pour les mêmes occurrences qu'il trouve sur les lignes suivantes.
Une idée pour qu'il m'affiche 1 également pour la première occurrence ?

Merci

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: Table de doublons

Messagepar Mickael Canouil » 05 Mar 2019, 10:34

Bonjour,

la fonction ci-dessous devrait vous donner ce que vous recherchez

Code : Tout sélectionner

duplicated2 <- function(x) {
  if (sum(dup <- duplicated(x)) == 0) {
    return(dup)
  }
  if (class(x) %in% c("data.frame", "matrix")) {
    duplicated(rbind(x[dup, ], x))[-(1:sum(dup))]
  } else {
    duplicated(c(x[dup], x))[-(1:sum(dup))]
  }
}


Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Table de doublons

Messagepar Pierre-Yves Berrard » 05 Mar 2019, 10:37

Code : Tout sélectionner

tab_doublons <- donnees[duplicated(donnees$NUM_COMMANDE) | duplicated(donnees$NUM_COMMANDE, fromLast = TRUE), ]
PY

Eric Casellas
Messages : 767
Enregistré le : 06 Jan 2009, 14:59

Re: Table de doublons

Messagepar Eric Casellas » 05 Mar 2019, 12:39

Bonjour,

Pour info, il existe aussi la fonction table qui permet de récupérer le nombre d’occurrences dans un vecteur

Code : Tout sélectionner

table(sample(LETTERS, 100, replace=TRUE))


Eric
Eric

Montana ROQUILLET
Messages : 43
Enregistré le : 24 Juil 2017, 06:39

Re: Table de doublons

Messagepar Montana ROQUILLET » 05 Mar 2019, 12:47

J'ai réussi, merci à vous pour vos solutions !!


Retourner vers « Questions en cours »

Qui est en ligne

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