Я сделаю контрейлер на mfidino.Если есть и другие значения, кроме X, Y и Z, вы можете использовать
Category2 %in% c('X', 'Y')
Это будет выглядеть следующим образом:
df <- tribble(
~Year, ~Category1, ~Category2, ~Value,
1990, 'A', 'X', 5,
1990, 'B', 'X', 4,
1990, 'A', 'Y', 3,
1990, 'B', 'Y', 1,
1990, 'A', 'Z', 4,
1990, 'B', 'Z', 2,
1991, 'A', 'X', 3,
1991, 'B', 'X', 2,
1991, 'A', 'Y', 8
)
df %>%
mutate(
Category2 = if_else(Category2 %in% c('X', 'Y'), 'X+Y', Category2)
) %>%
group_by(Year, Category1, Category2) %>%
summarise(
Value = sum(Value)
)
# A tibble: 6 x 4
# Groups: Year, Category1 [4]
Year Category1 Category2 Value
<dbl> <chr> <chr> <dbl>
1 1990 A X+Y 8
2 1990 A Z 4
3 1990 B X+Y 5
4 1990 B Z 2
5 1991 A X+Y 11
6 1991 B X+Y 2