accumulate {purrr} | R Documentation |
accumulate
applies a function recursively over a list from the left, while
accumulate_right
applies the function from the right. Unlike reduce
both functions keep the intermediate results.
accumulate(.x, .f, ..., .init) accumulate_right(.x, .f, ..., .init)
.x |
A list or atomic vector. |
.f |
For For |
... |
Additional arguments passed on to |
.init |
If supplied, will be used as the first value to start
the accumulation, rather than using |
1:3 %>% accumulate(`+`) 1:10 %>% accumulate_right(`*`) # From Haskell's scanl documentation 1:10 %>% accumulate(max, .init = 5) # Understanding the arguments .x and .y when .f # is a lambda function # .x is the accumulating value 1:10 %>% accumulate(~ .x) # .y is element in the list 1:10 %>% accumulate(~ .y) # Simulating stochastic processes with drift ## Not run: library(dplyr) library(ggplot2) rerun(5, rnorm(100)) %>% set_names(paste0("sim", 1:5)) %>% map(~ accumulate(., ~ .05 + .x + .y)) %>% map_dfr(~ data_frame(value = .x, step = 1:100), .id = "simulation") %>% ggplot(aes(x = step, y = value)) + geom_line(aes(color = simulation)) + ggtitle("Simulations of a random walk with drift") ## End(Not run)