Finden Sie die max Datum in einer Spalte über mehrere Zeilen
Habe ich folgende Daten Rahmen:
id <- c(1,1,2,3,3)
date <- c("23-01-08","01-11-07","30-11-07","17-12-07","12-12-08")
df <- data.frame(id,date)
df$date2 <- as.Date(as.character(df$date), format = "%d-%m-%y")
id date date2
1 23-01-08 2008-01-23
1 01-11-07 2007-11-01
2 30-11-07 2007-11-30
3 17-12-07 2007-12-17
3 12-12-08 2008-12-12
nun muss ich erstellen Sie eine vierte Spalte einfügen und maximale Datum der Transaktion für jeden id
.
der final table sollte wie folgt:
id date date2 max
1 23-01-08 2008-01-23 2008-01-23
1 01-11-07 2007-11-01 0
2 30-11-07 2007-11-30 2007-11-30
3 17-12-07 2007-12-17 0
3 12-12-08 2008-12-12 2008-12-12
Ich wäre sehr dankbar wenn Sie mir helfen, mit diesem.
InformationsquelleAutor AliCivil | 2012-08-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Edit: Da du willst die Letzte Spalte "leer", wenn das Datum nicht mit dem max Datum, können Sie versuchen, die nächste Zeile.
Natürlich, es ist immer schön zu bereinigen, die colnames, etc., aber das überlasse ich Ihnen.
InformationsquelleAutor seandavi
Ein weiterer Ansatz ist die Verwendung der
plyr
Paket:Nun ist dies nicht in dem format, das Sie gab nach, als es zeigt nur jede
id
einmal. Keine Angst, wir könnentransform
stattsummarize
:Als in @seandavi Antwort, dies wiederholt der
max
Datum für jedeid
. Wenn Sie möchten, ändern Sie die Duplikate zuNA
, so etwas wie dies wird den job tun:InformationsquelleAutor seancarmody
Hinzufügen
dplyr
Lösung, falls jemand sucht:Ergebnis:
InformationsquelleAutor avid_useR
InformationsquelleAutor shhhhimhuntingrabbits
Können Sie nicht verwenden Sie 0 als ein Date-Wert, so müssen Sie entweder zu verlassen halten Sie es als ein Datum ein, oder akzeptieren Sie einen NA-Wert:
Den
ifelse
Maschinen hat einige seltsame Art zu prüfen, dass Niederlagen mit nurx
als zweites argument oben, aber noch gibt Date-Klasse vector. Gehen Abbildung! Unter der Zeichen-Vektor-option.InformationsquelleAutor 42-
Fand ich dieses, um zu helfen, wenn ich will, um zu sehen, die min/max Datum einer Spalte
Max:
head(df %>% distinct(date) %>% arrange(desc(date)))
Min:
head(df %>% distinct(date) %>% arrange(date))
Max Sortieren die Spalte Datum, in absteigender Reihenfolge, so dass Sie sehen die max. Die min erfolgt die Sortierung in aufsteigender Reihenfolge, so dass Sie sehen die min.
Müssen Sie die
dplyr
- Paket für diese.InformationsquelleAutor grantog