Wert zuweisen zu Gruppe basiert auf Bedingung in Spalte

Habe ich einen Daten-frame, der wie folgt aussieht:

> df = data.frame(group = c(1,1,1,2,2,2,3,3,3), 
                 date = c(1,2,3,4,5,6,7,8,9),
                 value = c(3,4,3,4,5,6,6,4,9))
> df
  group date value
1     1    1     3
2     1    2     4
3     1    3     3
4     2    4     4
5     2    5     5
6     2    6     6
7     3    7     6
8     3    8     4
9     3    9     9

Möchte ich eine neue Spalte erstellen, die das Datum enthält Wert pro Gruppe zugeordnet ist, den Wert "4" aus der Spalte Wert.

Folgende Daten-frame zeigt, was ich hoffe zu erreichen.

  group date value newValue
1     1    1     3        2
2     1    2     4        2
3     1    3     3        2
4     2    4     4        4
5     2    5     5        4
6     2    6     6        4
7     3    7     6        8
8     3    8     4        8
9     3    9     9        8

Wie wir sehen, kann die Gruppe 1 hat die newValue "2" da, ist das Datum mit dem Wert "4". Ähnlich, Gruppe zwei hat newValue 4 und Gruppe drei hat newValue 8.

Ich nehme an, es gibt eine einfache Möglichkeit, dies zu tun mit ave() oder eine Reihe von dplyr/data.table Funktionen, aber ich habe schon erfolglos mit meinen versuchen.

Du hast Recht! Ich halt es fest

InformationsquelleAutor Boudewijn Aasman | 2015-08-25

Schreibe einen Kommentar