2016-06-29 14 views
0

Hallo Ich bin ein Student in Engineering in Frankreich und ich habe ein Projekt für die Universität. Momentan möchte ich Zeilen in meinen Daten entfernen, wenn sie innerhalb der Werte ihrer Spalte ähnlich sind. Meine Datenbank sieht wie folgt aus:Löschen Sie doppelte Zeilen aus einem Datenrahmen basierend auf mehreren Variablen

node event grade std    date     groupe   name 
6794 57605 100  659 2016-04-08 10:59:45.882267 cm1_mat_001_eap_001 c8 

6794 84007  0  659 2016-04-29 13:44:47.156998 cm1_mat_001_eap_001 c8 

6794 86729 100  659 2016-05-02 14:17:02.945516 cm1_mat_001_eap_001 c8 

6794 88921 100  659 2016-05-04 09:00:52.157544 cm1_mat_001_eap_001 c8 

6797 10119  0  659 2016-05-17 08:27:28.371022 cm1_mat_001_eap_001 c8 

6794 98291 100  729 2016-05-12 08:27:13.920052 cm1_mat_001_eap_001 c8 

6794 99711 100  729 2016-05-13 06:50:13.60001 cm1_mat_001_eap_001 c8 

6812 87995 100  796 2016-05-03 07:33:31.108374 cm1_mat_002_eap_003 c8 

Derzeit würde Ich mag Zeilen zu entfernen, wenn die Werte innerhalb der dort Spalten ähnlich sind. In meinem Fall, wenn die Werte in den Spalten "node" UND "std" ähnlich sind, möchte ich die doppelte Zeile basierend auf dieser Bedingung entfernen und die erste Zeile behalten.

6794 57605 100  659 2016-04-08 10:59:45.882267 cm1_mat_001_eap_001 c8 

6797 10119  0  659 2016-05-17 08:27:28.371022 cm1_mat_001_eap_001 c8 

6794 98291 100  729 2016-05-12 08:27:13.920052 cm1_mat_001_eap_001 c8 

6812 87995 100  796 2016-05-03 07:33:31.108374 cm1_mat_002_eap_003 c8 

Wie Sie die vierte Zeile blieb sehen können, weil die Bedingung, dass ich nur doppelte Daten betrachtet erstellen möchte, wenn „Knoten“ und „std“ ähnlich ist. Und in diesem Fall sind die Werte von "std" gleich den vorherigen Zeilen, aber nicht für die Werte innerhalb von "node".

Danke für die Hilfe. :)

+0

'install.packages ("data.table"); data.table :: setDT (df); data.table :: setkey (df, node, std); einzigartig (df) ' –

Antwort

3

unter Verwendung einer Base R,

df[!duplicated(df[c('node', 'std')]),] 
+1

Vielen Dank @Sotos und sorry für die Attrappen Fragen. Einen schönen Tag noch ! : D –

+0

Hinzufügen von nur wenigen Zeilen, die Antwort zu ergänzen: #new_uniq werden, ohne dass die Duplikate einzigartige Daten-Set enthalten. new_uniq <- Dataset [! Dupliziert (Dataset [c ('Datum', 'Staat')])] Ansicht (new_uniq) #Indexes der doppelten Zeilen, die entfernt werden: duplicate_indexes <- die (dupliziert (-Datensatz [c ('Datum', 'Staat')])) duplicate_indexes –