Ich habe eine CSV
Datei in einen R-Datenrahmen eingelesen. Einige der Zeilen haben dasselbe Element in einer der Spalten. Ich möchte Zeilen entfernen, die Duplikate in dieser Spalte sind. Beispielsweise:
platform_external_dbus 202 16 google 1
platform_external_dbus 202 16 space-ghost.verbum 1
platform_external_dbus 202 16 localhost 1
platform_external_dbus 202 16 users.sourceforge 8
platform_external_dbus 202 16 hughsie 1
Ich möchte nur eine dieser Zeilen, da die anderen die gleichen Daten in der ersten Spalte haben.
r
duplicates
r-faq
user1897691
quelle
quelle
google
oderlocalhost
oderhughsie
?Antworten:
Isolieren Sie einfach Ihren Datenrahmen auf die Spalten, die Sie benötigen, und verwenden Sie dann die eindeutige Funktion: D.
quelle
[,1:3]
Teil dieses Codes passiert ? Ich bin neu in R, weshalb ich frage, was ich nur annehmen kann, ist eine offensichtliche Frage.Verwenden Sie für Personen, die hierher gekommen sind, um nach einer allgemeinen Antwort zum Entfernen doppelter Zeilen zu suchen, Folgendes
!duplicated()
:Antwort von: Entfernen doppelter Zeilen aus dem R-Datenrahmen
quelle
df[!duplicated(df[, 1:2])]
Die Funktion
distinct()
imdplyr
Paket führt eine willkürliche Entfernung von Duplikaten durch, entweder aus bestimmten Spalten / Variablen (wie in dieser Frage) oder unter Berücksichtigung aller Spalten / Variablen.dplyr
ist ein Teil dertidyverse
.Daten und Paket
Entfernen Sie in einer bestimmten Spalte (z. B. Spalte
a
) duplizierte Zeilen.Beachten Sie, dass
.keep_all = TRUE
alle Spaltena
beibehalten werden , andernfalls wird nur die Spalte beibehalten.Entfernen Sie Zeilen, die vollständige Duplikate anderer Zeilen sind:
quelle
.keep_all
ob alle Spalten beibehalten und nicht gemischt werden sollenkeep
inpandas
.Das
data.table
Paket hat auchunique
undduplicated
Methoden die es mit einigen zusätzlichen Features besitzen.Sowohl die
unique.data.table
als auch dieduplicated.data.table
Methode haben ein zusätzlichesby
Argument, mit dem Sie einencharacter
oder eineninteger
Vektor von Spaltennamen bzw. deren Positionen übergeben könnenEin weiteres wichtiges Merkmal dieser Methoden ist ein enormer Leistungsgewinn für größere Datenmengen
quelle
Sie können auch mit
dplyr
‚s -distinct()
Funktion! Es ist in der Regel effizienter als alternative Optionen, insbesondere wenn Sie viele Beobachtungen haben.quelle
Die allgemeine Antwort kann zum Beispiel sein:
Ausgabe:
quelle
-which
. Dies führt zu Fehlern, wenn keine Duplikate vorhanden sind. Die Verwendung istdf[!(duplicated(df)), ]
möglicherweise sicherer.Mit
sqldf
:Lösung:
Ausgabe:
quelle
Oder Sie verschachteln die Daten in den Spalten 4 und 5 in einer einzigen Zeile mit
tidyr
:Die Duplikate für Spalte 2 und 3 werden jetzt zur statistischen Analyse entfernt. Sie haben jedoch die Daten für Spalte 4 und 5 in einem Tabellenbereich gespeichert und können jederzeit mit zum ursprünglichen Datenrahmen zurückkehren
unnest()
.quelle
Entfernen Sie doppelte Zeilen eines Datenrahmens
In diesem Dataset gibt es keine einzige doppelte Zeile, sodass dieselbe Anzahl von Zeilen wie in mydata zurückgegeben wird.
Entfernen Sie doppelte Zeilen basierend auf einer Variablen
Die Funktion .keep_all wird verwendet, um alle anderen Variablen im Ausgabedatenrahmen beizubehalten.
Entfernen Sie doppelte Zeilen basierend auf mehreren Variablen
Die Funktion .keep_all wird verwendet, um alle anderen Variablen im Ausgabedatenrahmen beizubehalten.
(von: http://www.datasciencemadesimple.com/remove-duplicate-rows-r-using-dplyr-distinct-function/ )
quelle
Dieses Problem kann auch gelöst werden, indem die erste Zeile aus jeder Gruppe ausgewählt wird, in der die Gruppe die Spalten sind, auf deren Grundlage wir eindeutige Werte auswählen möchten (im gemeinsam genutzten Beispiel ist es nur die erste Spalte).
Verwenden der Basis R:
Im
dplyr
Oder mit
data.table
Wenn wir eindeutige Zeilen basierend auf mehreren Spalten herausfinden müssen, fügen Sie diese Spaltennamen einfach im Gruppierungsteil für jede der obigen Antworten hinzu.
Daten
quelle
Hier ist eine sehr einfache, schnelle
dplyr
/tidy
Lösung:Entfernen Sie völlig gleiche Zeilen:
Entfernen Sie Zeilen, die nur in bestimmten Spalten identisch sind:
quelle