累計

概要

dplyrパッケージに含まれるcummean(), cumany(), cumall()base関数のcumsum(), cumprod(), cummin(), cummax()は、ベクトルの値を累計する関数です。主にmutate()と併せて使用します。

関連ページ

関数

cumsum(x)
cumprod(x)
cummax(x)
cummin(x)
cumall(x)
cumany(x)
cummean(x)
引数指定説明
x必須累計の対象になる列名を指定する

使い方

解説用データフレーム

df <- tibble(
  x1 = c(1, 2, 3, 4, 5)
)
> df
# A tibble: 5 x 1
     x1
  <dbl>
1     1
2     2
3     3
4     4
5     5

1.累積を計算する

1-1.累積和

# 列x1の累積和を計算する
mutate(df, y1 = cumsum(x1))
# A tibble: 5 x 2
     x1    y1
  <dbl> <dbl>
1     1     1
2     2     3
3     3     6
4     4    10
5     5    15

1-2.累積積

# 列x1の累積積を計算する
mutate(df, y1 = cumprod(x1))
# A tibble: 5 x 2
     x1    y1
  <dbl> <dbl>
1     1     1
2     2     2
3     3     6
4     4    24
5     5   120

1-3.累積平均

# 列x1の累積平均を計算する
mutate(df, y1 = cummean(x1))
# A tibble: 5 x 2
     x1    y1
  <dbl> <dbl>
1     1   1.0
2     2   1.5
3     3   2.0
4     4   2.5
5     5   3.0

2.最小値と最大値

2-1.累積最小値

# 列x1の累積最小値を返す
mutate(df, y1 = cummin(x1))
# A tibble: 5 x 2
     x1    y1
  <dbl> <dbl>
1     1     1
2     2     1
3     3     1
4     4     1
5     5     1

2-2.累積最大値

# 列x1の累積最大値を返す
mutate(df, y1 = cummax(x1))
# A tibble: 5 x 2
     x1    y1
  <dbl> <dbl>
1     1     1
2     2     2
3     3     3
4     4     4
5     5     5

3.Bool型を返す

3-1.条件と一致するまでFalseを返す

# 列x1が条件と一致するまでFalseを返す
mutate(df, y1 = cumany(x1 == 3))
# A tibble: 5 x 2
     x1    y1
  <dbl> <lgl>
1     1 FALSE
2     2 FALSE
3     3  TRUE
4     4  TRUE
5     5  TRUE

3-2.条件から外れるまでTrueを返す

# 列x1が条件から外れるまでTrueを返す
mutate(df, y1 = cumall(x1 %in% c(1, 2, 4)))
# A tibble: 5 x 2
     x1    y1
  <dbl> <lgl>
1     1  TRUE
2     2  TRUE
3     3 FALSE
4     4 FALSE
5     5 FALSE
Sponsored Link