Dplyr を使用して累計を計算する方法


dplyrパッケージを使用して、次の方法を使用して R の列の累計を計算できます。

方法 1: 列の累積合計を計算する

 df %>% mutate(cum_sum = cumsum(var1))

方法 2: グループごとの累計を計算する

 df %>% group_by(var1) %>% mutate(cum_sum = cumsum(var2))

次の例は、各メソッドを実際に使用する方法を示しています。

例 1: dplyr を使用して累積和を計算する

R に次のデータ フレームがあるとします。

 #create dataset
df <- data. frame (day=c(1, 2, 3, 4, 5, 6, 7, 8),
                 sales=c(7, 12, 10, 9, 9, 11, 18, 23))

#view dataset
df

  day sales
1 1 7
2 2 12
3 3 10
4 4 9
5 5 9
6 6 11
7 7 18
8 8 23

次のコードを使用して、「sales」列の値の累積合計を含む新しい列を作成できます。

 library (dplyr)

#calculate cumulative sum of sales
df %>% mutate(cum_sales = cumsum(sales))

  day sales cum_sales
1 1 7 7
2 2 12 19
3 3 10 29
4 4 9 38
5 5 9 47
6 6 11 58
7 7 18 76
8 8 23 99

例 2: dplyr を使用してグループごとの累積合計を計算する

R に次のデータ フレームがあるとします。

 #create dataset
df <- data. frame (store=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 day=c(1, 2, 3, 4, 1, 2, 3, 4),
                 sales=c(7, 12, 10, 9, 9, 11, 18, 23))

#view dataset
df

  store day sales
1 To 1 7
2 to 2 12
3 to 3 10
4 to 4 9
5 B 1 9
6 B 2 11
7 B 3 18
8 B 4 23

次のコードを使用して、「store」列でグループ化された「sales」列の値の累積合計を含む新しい列を作成できます。

 library (dplyr)

#calculate cumulative sum of sales by store
df %>% group_by(store) %>% mutate(cum_sales = cumsum(sales))

# A tibble: 8 x 4
# Groups: store[2]
  store day sales cum_sales   
1 To 1 7 7
2 A 2 12 19
3 To 3 10 29
4 A 4 9 38
5 B 1 9 9
6 B 2 11 20
7 B 3 18 38
8 B 4 23 61

追加リソース

次のチュートリアルでは、R で他の一般的な計算を実行する方法について説明します。

Rでグループごとの合計を計算する方法
R でグループごとの平均を計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です