Используя данные, предоставленные @G. Grothendieck, tidyverse
возможность:
DF %>%
gather(var, val, -Class) %>%
group_by(Class) %>%
summarise(Max = max(val, na.rm = TRUE),
Min = min(val, na.rm = TRUE))
Class Max Min
<chr> <dbl> <dbl>
1 A 13. 2.
2 B 17. 1.
Преобразует данные из широких в длинные и определяет минимальное и максимальное значение для «Класса».
Или:
cols <- names(DF)[2:length(DF)]
DF %>%
group_by(Class) %>%
summarise(Max = max(pmax(c(!!! rlang::syms(cols)), na.rm = TRUE), na.rm = TRUE),
Min = min(pmin(c(!!! rlang::syms(cols)), na.rm = TRUE), na.rm = TRUE))
Во-первых, он определяет столбцы, которые вы хотите обобщить. Затем он суммирует максимум и минимум построчного максимума и минимума.
Или:
cols <- names(DF)[2:length(DF)]
DF %>%
rowwise() %>%
mutate(Max = max(c(!!! rlang::syms(cols)), na.rm = TRUE),
Min = min(c(!!! rlang::syms(cols)), na.rm = TRUE)) %>%
group_by(Class) %>%
summarise(Max = max(Max, na.rm = TRUE),
Min = min(Min, na.rm = TRUE))
Во-первых, он определяет столбцы, которые вы хотите обобщить. Во-вторых, он вычисляет построчный максимум и минимум выбранных столбцов. В-третьих, он группируется по «Классу» и суммирует максимум и минимум построчного максимума и минимума.