seleccionar mutate funcion filtrar filas datos data agrupar r dataframe dplyr

mutate - ¿Cómo agregar una columna acumulativa a un marco de datos R usando dplyr?



mutate en r (1)

¿Me gusta esto?

df <- data.frame(id = rep(1:3, each = 5), hour = rep(1:5, 3), value = sample(1:15)) mutate(group_by(df,id), cumsum=cumsum(value))

O si usa el operador de tuberías de dplyr :

df %>% group_by(id) %>% mutate(cumsum = cumsum(value))

Resultado en ambos casos:

Source: local data frame [15 x 4] Groups: id id hour value cumsum 1 1 1 4 4 2 1 2 14 18 3 1 3 8 26 4 1 4 2 28 5 1 5 3 31 6 2 1 10 10 7 2 2 7 17 8 2 3 5 22 9 2 4 12 34 10 2 5 9 43 11 3 1 6 6 12 3 2 15 21 13 3 3 1 22 14 3 4 13 35 15 3 5 11 46

Tengo la misma pregunta que esta publicación , pero quiero usar dplyr :

Con un marco de datos R, por ejemplo:

df <- data.frame(id = rep(1:3, each = 5) , hour = rep(1:5, 3) , value = sample(1:15))

¿Cómo agrego una columna de suma acumulativa que coincida con la identificación?

Sin dplyr la solución aceptada de la publicación anterior es:

df$csum <- ave(df$value, df$id, FUN=cumsum)