Evaluate many functions using one data in R -


i know can evaluate 1 function many data using apply, can evaluate many functions using 1 data? using sapply can get:

sapply(list(1:5,10:20,5:18), sum) 

but want somethnig this:

sapply(1:5, list(sum, min,max)) 

and get

15 1 5 

any clever idea? :)

swap argument order, since looping on functions not data.

sapply(list(sum, min, max), function(f) f(1:5)) 

the 2 preferred modern approaches calculating summary statistics use dplyr , data.table packages. dplyr has variety of solutions (only working data frames, not vectors) using summarise or summarise_each.

library(dplyr) data <- data.frame(x = 1:5) summarise(data, min = min(x), max = max(x), sum = sum(x)) summarise_each(data, funs(min, max, sum)) 

the dplyr-idiomatic style construct expressions using chaining.

data %>%  summarise(min = min(x), max = max(x), sum = sum(x)) data %>%   summarise_each(funs(min, max, sum)) 

for programmatic use (as opposed interactive use), underscore-suffixed functions , formulae recommended non-standard evaluation.

data %>%  summarise_(min = ~ min(x), max = ~ max(x), sum = ~ sum(x)) data %>%   summarise_each_(funs_(c("min", "max", "sum"), "x") 

see agstudy's answer data.table solution.


Comments

Popular posts from this blog

How to mention the localhost in android -

php - Calling a template part from a post -

c# - String.format() DateTime With Arabic culture -