R

Rechercher et visualiser les doublons

Divers

Pour identifier des données dupliquées dans R, on a usuellement recours à la fonction duplicated().

Or, la fonction duplicated() retourne les positions des lignes dupliquées, à partir de la seconde occurence de chaque ligne :

Si cela est fort utile pour supprimer les doublons (puisque seules les secondes occurrences sont identifiées), on peut avoir besoin d’identifier l’ensemble des lignes concernées (y compris donc les premières occurrences), si l’on souhaite par exemple visualiser les doublons, autrement dit d’avoir une fonction duplicated2() dont le résultat serait :

Merci au groupe des utilisateurs du logiciel R du CIRAD, voici la solution :

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

Télécharger