Windstorm1981
Windstorm1981

Reputation: 2680

Incorporating na.rm=TRUE into Summarise_Each for Multiple Functions in dplyr

So I have a dplyr table movie_info_comb from which I am calculating various statistics on one column metascore. Here is the code:

summarise_each_(movie_info_comb, funs(min,max,mean,sum,sd,median,IQR),"metascore")

How do incorporate na.rm=TRUE? I've only seen examples for which one statistic is being calculated and I'd hate to have to repeat this 5 times (one for each function.

Thanks in advance.

Upvotes: 0

Views: 550

Answers (1)

bramtayl
bramtayl

Reputation: 4024

You can do this with lazy evaluation

library(lazyeval)

na.rm = function(FUN_string)
  lazy(FUN(., na.rm = TRUE)) %>%
    interp(FUN = FUN_string %>% as.name)

na.rm.apply = function(FUN_strings)
  FUN_strings %>% 
  lapply(na.rm) %>%
  setNames(FUN_strings)

mtcars %>%
  select(mpg) %>%
  summarize_each(
    c("min","max","mean","sum","sd","median","IQR") %>%
      na.rm.apply)

Upvotes: 1

Related Questions