Ich würde gerne die Prägnanz von magritr, dplyr und möglicherweise purrr verwenden, um einen großen Datenrahmen (mit vielen Variablen verschiedener Typen) durch eine Variable x
aufzuteilen Anwendung verschiedener Funktionen bedingt durch x
auf jede Gruppe und Zeile innerhalb einer Gruppe auf eine zweite Variable y
.Bedingte Anwendung von Funktionen auf gruppierte Datenframes in R mit magrittr, dplyr und purrr
Nehmen Sie den Datenrahmen df <- data.frame(a, b, x, c, d, y)
, wo x
Faktoren sind (foo
, bar
) und y
sind Zahlen. Ich kann tun, was ich so unelegant mit einem unpiped Workflow beschrieben:
df$y[df$x == "foo"] %<>% subtract(min(.))
df$y[df$x == "bar"] %<>% add(max(df$y[df$x == "foo"]))
Ich mag würde dies mit dplyr neu zu schreiben und es zu einem langen Rohr hinzufügen für df
, aber all meine Versuche zu kombinieren mutate
, sapply
und do
Habe versagt; ebenso wie Versuche, purrr mit anonymen Funktionen zu integrieren, by_slice
und dmap
.
Vielen Dank im Voraus für den Rat.
, wenn Sie, ich könnte einen Beispieldatensatz liefern könnten versuchen, Antworten. – timelyportfolio