Ich habe einen Transaktionsdatensatz von 10 Kunden vom 01.01.2013 bis 01-11-2016. Ich teile den Datensatz für jeden Kunden manuell wie folgt auf, aber ich konnte nicht finden, wie man eine Schleife dafür erstellt. Was ist die beste Schleife dafür?Stuck in Erstellen von Schleife in R
customer_1 <- transactions[1:47,]
customer_2 <- transactions[48:94,]
customer_3 <- transactions[95:141,]
customer_4 <- transactions[142:188,]
customer_5 <- transactions[189:235,]
customer_6 <- transactions[236:282,]
customer_7 <- transactions[283:329,]
customer_8 <- transactions[330:376,]
customer_9 <- transactions[377:423,]
customer_10 <- transactions[424:468,]
Viele Optionen zum Bearbeiten eines Datenrahmens nach Gruppen. Die 'group_by()' Funktion im 'dplyr' Paket ist ein guter Startpunkt. Mit Base R können Sie die Funktion 'split()' oder 'tapply()' verwenden. Oder das Paket data.table hat ein 'by' -Argument. Siehe diese Frage für Ideen https://StackOverflow.com/q/11562656/134830 –
Obwohl es möglich wäre, einen Vektor von Indizes zu verwenden, um die Daten iterativ zu partitionieren und 'assign', um die Variable dynamisch zu erstellen, denke ich, dass es ein bessere Idee, es in eine Liste von data.frames aufzuteilen (https://stackoverflow.com/questions/17499013/how-do-i-make-a-list-of-data-frames/24376207#24376207) oder (wie @RichieCotton vorgeschlagen) halte es einen Rahmen und arbeite gruppenweise. – r2evans
out <- split (Transaktionen, f = Transaktionen $ customer_id) gibt Ihnen eine Liste von Elementen, jedes enthält alle Transaktionen von einem Kunden –