Фрейм данных df
имеет три столбца: x
, y
и n
. Я хочу создать новый фрейм данных, который группируется по x, подсчитывает количество наблюдений в y для этой группы x, а затем суммирует значения для этой группы в n.
df <- structure(list(x = c(1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5,
5, 5), y = c(1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 4, 1, 2, 1, 2, 3),
n = c(4L, 3L, 2L, 3L, 2L, 4L, 2L, 2L, 3L, 3L, 2L, 5L, 3L,
3L, 2L, 3L)), class = "data.frame", row.names = c(NA, -16L))
Целевой фрейм данных выглядит так, где a
- это 5 групп из исходного df
:
> print(df2, row.names=FALSE)
a b c
1 4 12
2 3 8
3 4 10
4 2 8
5 3 8
По какой-то причине я не комбинирую инструкции group_by
, mutate
или summarize
в конвейере в правильном порядке, чтобы это произошло. Это похоже на простое решение, которого я сейчас не вижу. Если бы кто-нибудь мог помочь, я был бы признателен.