cumall {dplyr} | R Documentation

## 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)

### Arguments

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

### Value

A vector the same length as `x`.

### 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

    # `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)))

[Package dplyr version 0.8.0.1 Index]