Предполагая, что все имена столбцов следуют шаблону в вашем примере - общий префикс букв, за которыми следуют цифры - вы можете использовать этот подход.
Пример данных:
set.seed(1001)
df1 <- data.frame(AC1 = sample(1:100, 50, replace = TRUE),
AC2 = sample(1:100, 50, replace = TRUE),
AD1 = sample(1:100, 50, replace = TRUE),
AD2 = sample(1:100, 50, replace = TRUE),
BP1 = sample(1:100, 50, replace = TRUE),
BP2 = sample(1:100, 50, replace = TRUE)
)
код. Создайте новую переменную для группировки, удалив числа из имени переменной:
library(tidyr)
library(dplyr)
df1 %>%
gather(Var, Val) %>%
mutate(Var2 = gsub("\\d+", "", Var)) %>%
group_by(Var2) %>%
summarise(Sum = sum(Val, na.rm = TRUE),
Min = min(Val, na.rm = TRUE),
Max = max(Val, na.rm = TRUE))
Результат:
# A tibble: 3 x 4
Var2 Sum Min Max
<chr> <int> <int> <int>
1 AC 4846 1 100
2 AD 4924 4 96
3 BP 5000 1 100