2016-07-20 11 views
1

Ich versuche derzeit, Daten auf eine kleinere Größe zu unterteilen, und ich habe ein Problem mit dem Coding-Teil, da ich ein kompletter Neuling in der Codierung bin.Löschen von Zeilen mit identischen Variablen in R

Ich versuche hier alle Zeilen mit identischen Einträgen loszuwerden. So sollte der Code beispielsweise alle Zeilen mit identischen Variablen in Spalte 3 "var 2" eliminieren. Die doppelte Funktion würde nur den zweiten Eintrag mit "0" loswerden, aber ich möchte beide Einträge mit "0" loswerden.

Schätzen Sie Ihre Hilfe! http://i.stack.imgur.com/esfSB.jpg

+0

Zeigen Sie uns bitte die erwartete Ausgabe. –

+2

Veröffentlichen Sie Ihre Daten nicht als Bild, sondern erfahren Sie, wie Sie ein [reproduzierbares Beispiel] erstellen können (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610) – Jaap

Antwort

1

Sie könnten die dplyr-Bibliothek verwenden, um Datenmanipulationen durchzuführen. Es ist eine gepflegte Bibliothek und sehr hilfreich. Ich habe den folgenden Code entwickelt, um Ihr Problem zu lösen. Unter der Annahme, dass der Datenrahmen in einer Variablen namens data_frame gespeichert ist, ist die Lösung als

data_frame <- tbl_df(data_frame) %>% 
       group_by(var2) %>% 
       filter(n()==1) 

folgt I in denselben Variablen das Ergebnis am speichert. Sie könnten einen anderen Variablennamen verwenden, um den ursprünglichen Datenrahmen intakt zu halten.

0

Hier verwenden wir Tabelle, um zu sehen, welche Werte dupliziert werden, dann suchen Sie unter allen Werten nach denen, die nicht dupliziert sind.

df = table(data$Var2) 
data[!data$Var2 %in% as.numeric(names(df[df > 1])), ] 
0

Wir können auch duplicated mit fromLast=TRUE all diesen doppelten Zeilen zu entfernen.

df1[with(df1, !(duplicated(var2)|duplicated(var2, fromLast=TRUE)),] 
Verwandte Themen