Editer 2019 : Cette question a été posée avant les changements dans data.table
en novembre 2016, voir la réponse acceptée ci-dessous pour la méthode actuelle et la méthode précédente.
J'ai un data.table
avec environ 2,5 millions de lignes. Il y a deux colonnes. Je veux supprimer toutes les lignes qui sont dupliquées dans les deux colonnes. Auparavant, pour un data.frame, j'aurais fait ceci : df -> unique(df[,c('V1', 'V2')])
mais cela ne fonctionne pas avec data.table. J'ai essayé unique(df[,c(V1,V2), with=FALSE])
mais il semble qu'elle n'opère toujours que sur la clé du tableau data.table et non sur la ligne entière.
Des suggestions ?
A la vôtre, Davy
Exemple
>dt
V1 V2
[1,] A B
[2,] A C
[3,] A D
[4,] A B
[5,] B A
[6,] C D
[7,] C D
[8,] E F
[9,] G G
[10,] A B
dans le tableau de données ci-dessus où V2
est la clé de la table, seules les lignes 4, 7 et 10 seront supprimées.
> dput(dt)
structure(list(V1 = c("B", "A", "A", "A", "A", "A", "C", "C",
"E", "G"), V2 = c("A", "B", "B", "B", "C", "D", "D", "D", "F",
"G")), .Names = c("V1", "V2"), row.names = c(NA, -10L), class = c("data.table",
"data.frame"), .internal.selfref = <pointer: 0x7fb4c4804578>, sorted = "V2")