Hi there, how does this work for you? Converting Survived to 1/0 makes this easier:
titanic_tibble %>%
mutate(n_surv = n * ifelse(Survived == "Yes",1,0)) %>%
filter(Age == "Adult") %>%
group_by(Class,Sex) %>%
summarise (n = sum(n, na.rm = TRUE),
n_surv = sum(n_surv, na.rm = TRUE),
rate_surv = n_surv/n)