Dplyr を使用して複数の列を合計する方法


dplyr を使用してデータ フレーム内の複数の列の値を合計するには、次のメソッドを使用できます。

方法 1: すべての列の合計

 df %>%
  mutate(sum = rowSums(., na. rm = TRUE ))

方法 2: すべての数値列を合計する

 df %>%
  mutate(sum = rowSums(across(where(is. numeric )), na. rm = TRUE ))

方法 3: 特定の列の合計

 df %>%
  mutate(sum = rowSums(across(c(col1, col2))))

次の例は、さまざまな試合でさまざまなバスケットボール選手が獲得したポイントに関する情報を含む次のデータ フレームで各メソッドを使用する方法を示しています。

 #create data frame
df <- data. frame (game1=c(22, 25, 29, 13, 22, 30),
                 game2=c(12, 10, 6, 6, 8, 11),
                 game3=c(NA, 15, 15, 18, 22, 13))

#view data frame
df

  game1 game2 game3
1 22 12 NA
2 25 10 15
3 29 6 15
4 13 6 18
5 22 8 22
6 30 11 13

例 1: すべての列の合計

次のコードは、データ フレーム内のすべての列の値の合計を計算する方法を示しています。

 library (dplyr)

#sum values across all columns
df %>%
  mutate(total_points = rowSums(., na. rm = TRUE ))

game1 game2 game3 total_points
1 22 12 NA 34
2 25 10 15 50
3 29 6 15 50
4 13 6 18 37
5 22 8 22 52
6 30 11 13 54

例 2: すべての数値列の合計

次のコードは、データ フレーム内のすべての数値列の値の合計を計算する方法を示しています。

 library (dplyr)

#sum values across all numeric columns
df %>%
  mutate(total_points = rowSums(across(where(is. numeric )), na. rm = TRUE ))

game1 game2 game3 total_points
1 22 12 NA 34
2 25 10 15 50
3 29 6 15 50
4 13 6 18 37
5 22 8 22 52
6 30 11 13 54

例 3: 特定の列の合計

次のコードは、 game1列とgame2列のみの値の合計を計算する方法を示しています。

 library (dplyr)

#sum values across game1 and game2 only
df %>%
  mutate(first2_sum = rowSums(across(c(game1, game2))))

  game1 game2 game3 first2_sum
1 22 12 NA 34
2 25 10 15 35
3 29 6 15 35
4 13 6 18 19
5 22 8 22 30
6 30 11 13 41

追加リソース

次のチュートリアルでは、dplyr を使用して他の一般的なタスクを実行する方法について説明します。

dplyrを使用して行を削除する方法
dplyrを使用して行を配置する方法
dplyrを使って複数の条件でフィルタリングする方法

コメントを追加する

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