Dplyr: как суммировать данные, но сохранить все столбцы
При использовании функции summarise() в dplyr любые переменные, не включенные в функции summarise() или group_by() , будут автоматически удалены.
Однако вы можете использовать функцию mutate() для суммирования данных, сохраняя при этом все столбцы во фрейме данных.
В следующем примере показано, как использовать эту функцию на практике.
Пример: суммируйте данные, но сохраните все столбцы, используя dplyr.
Предположим, у нас есть следующий кадр данных, содержащий информацию о различных баскетболистах:
#create data frame df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 3 ), points=c(4, 9, 8, 12, 15, 14, 29, 30, 22), assists=c(3, 3, 2, 5, 8, 10, 4, 5, 12)) #view data frame df team points assists 1 to 4 3 2 to 9 3 3 to 8 2 4 B 12 5 5 B 15 8 6 B 14 10 7 C 29 4 8 C 30 5 9 C 22 12
Мы можем использовать следующий синтаксис для суммирования среднего количества очков , набранных каждой командой :
library (dplyr) #summarize mean points values by team df %>% group_by(team) %>% summarize(mean_pts = mean(points)) # A tibble: 3 x 2 team mean_pts 1 to 7 2 B 13.7 3 C 27
В столбце Mean_pts отображается среднее количество очков, набранных каждой командой.
По результату мы видим:
- Среднее количество очков, набранных игроками команды А, равно 7 .
- Среднее количество очков, набранных игроками команды Б, составляет 13,7 .
- Среднее количество очков, набранных игроками команды С, составляет 27 .
Однако предположим, что мы хотим сохранить все остальные столбцы из исходного фрейма данных.
Для этого мы можем использовать следующий синтаксис с функцией mutate() :
library (dplyr) #summarize mean points values by team and keep all columns df %>% group_by(team) %>% mutate(mean_pts = mean(points)) %>% A group() # A tibble: 9 x 4 team points assists mean_pts 1 to 4 3 7 2 to 9 3 7 3 to 8 2 7 4 B 12 5 13.7 5 B 15 8 13.7 6 B 14 10 13.7 7 C 29 4 27 8 C 30 5 27 9 C 22 12 27
Используя функцию mutate() , мы можем создать новый столбец под названием Mean_pts , в котором суммируются средние баллы, набранные каждой командой, сохраняя при этом все остальные столбцы из исходного фрейма данных.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в dplyr:
dplyr: как изменить переменную, если столбец содержит строку
dplyr: Как изменить уровни факторов с помощью mutate()
dplyr: Как добавить несколько столбцов