Inspired by reduce() from the purrr package

reduce(.x, .f, ..., .init)

Arguments

.x

A list or atomic vector.

.f

A 2-argument function. The function will be passed the accumulated value as the first argument and the "next" value as the second argument.

...

Additional arguments passed on to .f.

.init

If supplied, will be used as the first value to start the accumulation, rather than using x[[1]]. This is useful if you want to ensure that reduce returns a correct value when .x is empty. If missing, and x is empty, will throw an error.

Author

Jonathon Love jon@thon.cc