Grouped tidy summary

Hello.
I wonder what is the tidyverse equivalent for this:

library(dplyr)
data("iris")

iris %>% 
  group_by(Species) %>% 
  select(Sepal.Length) %>% 
  do(broom::tidy(summary(.$Sepal.Length)))

This returns a nice clean df of grouped summary statistics. Works like a champ. The problem is, I stole the code somewhere on SO and I am somewhat reluctant to internalize it the way it is. Is there an elegant tidyverse solution to this, which I managed to ignore?

Thanks a lot!

your code relied on broom::tidy which you hadnt declared.

You can do this

iris %>% 
  group_by(Species) %>% 
  summarise(across(.cols = Sepal.Length,
                   .fns = list(min=min,
                               q1 = ~quantile(.,.25),
                               median=median,
                               mean=mean,
                               q3 = ~quantile(.,.75),
                               max=max),
                   .names ="{.fn}"))
2 Likes

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.

If you construct a function it can be as concise as your function name,...(or Rstudio snippet)

Thanks, I edited the question. I was hoping for some more concise solution . I'll think about it some more. Thank you.