概要
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