3
Ich habe einen Datenrahmen mit einer Anzahl von ID- und Max-Werten.Backfill-Datenrahmen in R basierend auf der maximalen Anzahl
df <- data.frame(id = c("a", "b", "c"), max.number = c(0, 6, 4))
id max.number
1 a 0
2 b 6
3 c 4
Ich möchte einen neuen Datenrahmen erstellen, der für jede ID auf Null zurückfließt. Es würde wie folgt aussehen:
id number
1 a 0
2 b 0
3 b 1
4 b 2
5 b 3
6 b 4
7 b 5
8 b 6
9 b 0
10 c 1
11 c 2
12 c 3
13 c 4
Ich habe versucht, für Schleife dies durch einen verschachtelten zu tun, aber kann sie nicht richtig zu arbeiten. Ich würde gerne ein wenig Anleitung dabei haben, wenn möglich.
Sie mit 'id gehen könnte <- lapply (df $ max.number, seq, aus = 0); data.frame (id = rep (df $ id, länge (id)), num = unlist (id)) ' – user20650
Sie finden nützliche'? Rep' für "id" und '? Sequenz' für" max. Nummer " –
@ user20650 Das hat perfekt funktioniert. Vielen Dank! Sicherstellen, dass ich den Prozess verstehe. Mit Hilfe von lapply wird eine Liste mit Vektoren von 0 bis zu meiner maximalen Anzahl erstellt. Dann wird ein Datenrahmen erzeugt, indem die ID für die Länge jedes Vektors mit der ID-Liste wiederholt wird und die ID-Liste entfernt wird. Vielen Dank! – ak24