Learn R Programming

dplyr (version 1.0.10)

cumall: Cumulativate versions of any, all, and mean

Description

dplyr provides cumall(), cumany(), and cummean() to complete R's set of cumulative functions.

Usage

cumall(x)

cumany(x)

cummean(x)

Value

A vector the same length as x.

Arguments

x

For cumall() and cumany(), a logical vector; for cummean() an integer or numeric vector.

Cumulative logical functions

These are particularly useful in conjunction with filter():

  • cumall(x): all cases until the first FALSE.

  • cumall(!x): all cases until the first TRUE.

  • cumany(x): all cases after the first TRUE.

  • cumany(!x): all cases after the first FALSE.

Examples

Run this code
# `cummean()` returns a numeric/integer vector of the same length
# as the input vector.
x <- c(1, 3, 5, 2, 2)
cummean(x)
cumsum(x) / seq_along(x)

# `cumall()` and `cumany()` return logicals
cumall(x < 5)
cumany(x == 3)

# `cumall()` vs. `cumany()`
df <- data.frame(
  date = as.Date("2020-01-01") + 0:6,
  balance = c(100, 50, 25, -25, -50, 30, 120)
)
# all rows after first overdraft
df %>% filter(cumany(balance < 0))
# all rows until first overdraft
df %>% filter(cumall(!(balance < 0)))

Run the code above in your browser using DataLab