ich einen Datenrahmen der folgende Form haben:rearrange data.frame die Reihenfolge der Produkte zu erhalten
df <- data.frame(client = c("client1", "client1", "client2", "client3", "client3"),
product = c("A", "B", "A", "D", "A"),
purchase_Date = c("2010-03-22", "2010-02-02", "2009-03-02", "2011-04-05", "2012-11-01"))
df$purchase_Date <- as.Date(df$purchase_Date, format = "%Y-%m-%d")
, die wie folgt aussieht:
client product purchase_Date
1 client1 A 2010-03-02
2 client1 B 2010-02-02
3 client2 A 2009-03-02
4 client3 D 2011-04-05
5 client3 A 2012-11-01
die ich möchte wie diese neu anordnen :
client purchase1 purchase2
1 client1 B A
2 client2 A <NA>
3 client3 D A
so würde ich, welches Produkt, um herauszufinden, wie der erste, zweite, dritte und so weiter, jedes perso war n geordnet nach dem Kaufdatum. Ich kann leicht jeden einzeln mit data.table:
für die erste. aber ich habe keine Ahnung, wie man die gewünschte Ausgabe effizient erhält.
Dies finde ich effizienter, da es einen Aufruf von 'frank()' für jedes 'by' vermeidet. 'seq_len()' sollte sehr vernachlässigbar sein ... wäre toll, Benchmark! – Arun
Gerade Benchmark auf einer Million Zeilen mit 10000 Clients - 'frank = 2.6s' vs' order() = 0.5s'. Hinzugefügt [FR # 1197] (https://github.com/Rdatatable/data.table/issues/1197). – Arun