2016-04-21 20 views
0

Mein Ziel ist es, zu zählen, wie viele Duplikate in einer Spalte sind.
So habe ich eine Spalte von 3516 Obs. von 1 Variable,
gibt es alle Daten mit ca. 144 Duplikaten jeweils vom 1/4/16 bis zum 7.3./16.
Beispiel: (ich gebe 1 Duplikat zum Beispiel sake ein)
1/4/16
1/4/16
31/3/16
31/3/16
30/3/16
30/3/16
29/3/16
29/3/16
28/3/16
28/3/16
Also habe ich die Funktion date = count (date)
verwendet, wobei date mein df date ist.
Aber sobald ich es ausführe, ist meine Datumssequenz nicht mehr in Ordnung.
Hoffe, dass jemand mein Problem lösen kann.Zählen Sie die Anzahl der Duplikate für eine Spalte

+0

Was ist Ihre erwartete Ausgabe? –

+0

Ich möchte eine andere Spalte erstellen und die Anzahl der Duplikate neben dem Datum haben. –

Antwort

3

Wenn wir die Gesamtzahl der Duplikate

sum(table(df1$date)-1) 
#[1] 5 

Es sei zu rechnen brauchen, müssen wir die Zahl jedes Datum, eine Option zu einer Gruppe von ‚date‘ sein würde und sich die Anzahl der Reihen. Dies kann mit data.table erfolgen.

library(data.table) 
setDT(df1)[, .N, date] 
+1

Danke das ist, was ich suche! –

1

Wenn Sie die Anzahl der Anzahl der Duplikate in Ihrer Spalte möchten, können Sie duplicated

sum(duplicated(df$V1)) 
#[1] 5 

Unter der Annahme, V1 als Spaltennamen verwenden.

EDIT

Gemäß dem Update, wenn Sie die Anzahl der jeweiligen Daten wollen, können Sie die table Funktion verwenden, die Ihnen genau das

table(df$V1) 

#1/4/16 28/3/16 29/3/16 30/3/16 31/3/16 
# 2  2  2  2  2 
+0

Ich entschuldige mich, wenn ich meine Frage nicht korrekt formulierte, Meine erwartete Ausgabe ist das Löschen des Duplikats und habe eine andere Spalte, die die Anzahl der Duplikate auflistet, die gezählt wurde –

+0

@AmosOng Hi! Vielen Dank. Antwort aktualisiert –

2

Eine Möglichkeit ist eine Daten erstellen Rahmen mit eindeutigen Werten Ihrer Anfangsdaten, die die Reihenfolge beibehalten und dann left_join von dplyr-Paket verwenden, um die zwei Datenrahmen zu verbinden. Beachten Sie, dass der Name Ihrer Spalte identisch sein sollte.

Initial_data <- structure(list(V1 = structure(c(1L, 1L, 5L, 5L, 4L, 4L, 3L, 3L, 
2L, 2L, 2L), .Label = c("1/4/16", "28/3/16", "29/3/16", "30/3/16", 
"31/3/16"), class = "factor")), .Names = "V1", class = "data.frame", row.names = c(NA, 
-11L)) 

df1 <- unique(Initial_data) 
count1 <- count(df1) 

left_join(df1, count1, by = 'V1') 
#  V1 freq 
#1 1/4/16 2 
#2 31/3/16 2 
#3 30/3/16 2 
#4 29/3/16 2 
#5 28/3/16 3 
Verwandte Themen