С dplyr
1.0.0 мы можем использовать across
с summarise
, где можно применять несколько функций, как в обычном summarise
, а также группы или блоки столбцов в across
library(dplyr)
iris %>%
group_by(Species) %>%
summarise(across(where(is.numeric), mean, na.rm = TRUE), n = n())
Основываясь на комментариях OP, если нам нужно найти количество пропущенных значений для каждого столбца вместе с mean
каждого столбца, мы можем иметь разные наборы across
(если разные наборы столбцов используются)
iris %>%
summarise(across(where(is.numeric), mean, na.rm = TRUE),
across(where(is.numeric), ~ sum(is.na(.)), .names = '{col}_n'))
или иметь один across
с разными функциями
iris %>%
summarise(across(where(is.numeric),
list(mean = ~ mean(., na.rm = TRUE), n = ~ sum(is.na(.)))))