In Bezug auf this question habe ich versucht, die einfachste Möglichkeit zu finden, eine Liste von Funktionen auf eine Liste von Werten anzuwenden. Grundsätzlich ein verschachteltes lapply
. Zum Beispiel, hier wenden wir sd
und mean
setzen trees
in Daten gebaut:Liste der Funktionen auf die Liste der Werte anwenden
funs <- list(sd=sd, mean=mean)
sapply(funs, function(x) sapply(trees, x))
zu erhalten:
sd mean
Girth 3.138139 13.24839
Height 6.371813 76.00000
Volume 16.437846 30.17097
Aber ich hatte gehofft, dass die innere function
zu vermeiden und haben so etwas wie:
sapply(funs, sapply, X=trees)
was nicht funktioniert, weil X
die erste sapply
statt der zweiten entspricht. Wir können es mit functional::Curry
:
sapply(funs, Curry(sapply, X=trees))
aber ich hatte gehofft, vielleicht gibt es eine kluge Art und Weise war dies mit Lage- und Namensabgleich zu tun, dass ich fehle.
Hadley schrieb ein ganzes Kapitel zu diesem Thema: http://adv-r.had.co.nz/Funktions-programmieren.html#listen-von-Funktionen, da ich nicht schlauer bin als er, weiß ich kein besserer Weg, dies zu tun – grrgrrbla
Nicht einfacher, aber nett, wenn Sie ein sauberes data.frame am Ende wünschen: 'Bibliothek (purrr); map_df (Spaß, ~ map_df (Bäume, .x), .id = 'Statistik') ' – alistaire