В отношении this question, я пытался выяснить простейший способ применения списка функций к списку значений. В принципе, вложенный lapply
. Например, здесь мы применяем sd
и mean
встраиваемым набора данных trees
:Применить список функций к списку значений
funs <- list(sd=sd, mean=mean)
sapply(funs, function(x) sapply(trees, x))
получить:
sd mean
Girth 3.138139 13.24839
Height 6.371813 76.00000
Volume 16.437846 30.17097
Но я надеялся, чтобы избежать внутреннего function
и иметь что-то вроде:
sapply(funs, sapply, X=trees)
который не работает, потому что X
соответствует первому sapply
вместо второго. Мы можем сделать это с functional::Curry
:
sapply(funs, Curry(sapply, X=trees))
, но я надеялся, что, может быть, там был умный способ сделать это с позиционной и именем, совпадающим, что я пропавшими без вести.
hadley написал целую главу на эту тему: http://adv-r.had.co.nz/Functional-programming.html#lists-of-functions, так как я не более умный, чем я. не лучший способ сделать это – grrgrrbla
Не проще, но приятно, если вы хотите аккуратный data.frame в конце: 'library (purrr); map_df (funs, ~ map_df (деревья, .x), .id = 'statistic') ' – alistaire