r - Cumulatively apply function in dplyr -
consider following data:
df <- data.frame(names = sample(letters[1:5], 20, replace = t), numbers = 1:20) for have function cumsum, such each row in group, computes cumulative sum of numbers row
library(dplyr) df %>%   group_by(names) %>%   mutate(cumsum_numbers = cumsum(numbers)) i wish apply general function my_fn cumulatively in same manner cumsum. my_fn has general form:
my_fn <- function(vector){   # stuff  vector   return(x) # x numeric scalar  } that is, takes vector of previous values row, , returns scalar.
the following code not work:
df %>%   group_by(names) %>%   mutate(cumsum_numbers = my_fn(numbers)) # apply my_fn                              # each group in numbers, returning                              # same value each grouping level so guess want like:
df %>%   group_by(names) %>%   mutate(cumsum_numbers = cum_my_fn(numbers)) note example function mean calculating cumulative mean. interestingly dplyr has implemented cummean, don't know internal workings of can't work out how implement behaviour general function.
 
 
  
Comments
Post a Comment