Hi everyone,

I have created a function that calculates the maximum in a density plot grouped by 1 categorical variable.

```
library(dplyr)
library(ggplot2)
library(purrr)
max_density <- function(data, num_var, group_var1) {
data %>%
group_split( {{group_var1}}) %>%
map(~select(., density_var = {{num_var}} )) %>%
map(~pull(., .data$density_var)) %>%
map(~stats::density(., na.rm = TRUE)[[2]]) %>%
map_dbl(~max(.)) %>%
max()
}
max_density(penguins, body_mass_g, sex)
ggplot(filter(penguins, !is.na(sex))) +
geom_density(aes(body_mass_g, col = sex, fill = sex), alpha = 0.1) +
scale_y_continuous(labels = scales::comma)
```

Now I would like to come up with a function to calculate the maximum density where there are 2 grouping variables.

I am not sure how to do this, as it requires calculating the density of each sex/species group and then summing each of sex value groups - and then find of the max of these.

This can be visualised by the graph below.

```
ggplot(filter(penguins, !is.na(sex))) +
geom_density(aes(body_mass_g, col = sex, fill = sex), alpha = 0.1) +
scale_y_continuous(labels = scales::comma) +
facet_wrap(~species)
```

Any help appreciated

Thanks!

David