Мы можем сгруппировать как 'state', так и 'fips', а затем использовать summarise_at
library(dplyr)
c_states %>%
group_by(state, fips) %>%
summarise_at(vars(cases, deaths), sum)
# A tibble: 4 x 4
# Groups: state [4]
# state fips cases deaths
# <chr> <int> <int> <int>
#1 Arizona 4 1 0
#2 California 6 44 4
#3 Illinois 17 10 2
#4 Washington 53 11 3
или использовать summarise
с across
c_states %>%
group_by(state, fips) %>%
summarise(across(c(cases, deaths), sum))
данные
c_states <- structure(list(date = c("2020-01-21", "2020-01-22", "2020-01-23",
"2020-01-24", "2020-01-24", "2020-01-25", "2020-01-25", "2020-01-25",
"2020-01-26", "2020-01-26", "2020-01-26"), state = c("Washington",
"Washington", "Washington", "Illinois", "Washington", "California",
"Illinois", "Washington", "Arizona", "California", "Illinois"
), fips = c(53L, 53L, 53L, 17L, 53L, 6L, 17L, 53L, 4L, 6L, 17L
), cases = c(1L, 1L, 3L, 6L, 1L, 34L, 3L, 5L, 1L, 10L, 1L), deaths = c(0L,
0L, 1L, 1L, 0L, 3L, 1L, 2L, 0L, 1L, 0L)), class = "data.frame",
row.names = c(NA,
-11L))