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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine schnelle
data.table
eineHier ist eine ähnliche
dplyr
versionOder eine mögliche Basis R-Lösung mit
merge
nach dem filtern der Daten (brauchen etwas umbenennen danach)Arenburg, bitte helfen Sie mir mit ein wenig zwicken hier, stackoverflow.com/questions/47716479/...
InformationsquelleAutor David Arenburg
Hier ist ein Basis-R-option
Andere alternative mit
lapply
InformationsquelleAutor Veerendra Gadekar
Einer mehr
base R
Pfad:Habe ich eine test-variable Länge-Gruppen. Ich wies die
date
Spalte als Namen für den logischen index desvalue
gleich 4. Dann ermitteln Sie den Wert von group.Daten
InformationsquelleAutor Pierre Lafortune