Dplyr で across() 関数を使用する方法 (3 つの例)


R のdplyrパッケージのacross()関数を使用して、複数の列に変換を適用できます。

この機能を使用する方法は無数にありますが、次の方法はいくつかの一般的な使用方法を示しています。

方法 1: 関数を複数の列に適用する

 #multiply values in col1 and col2 by 2
df %>% 
  mutate(across(c(col1, col2), function (x) x*2))

方法 2: 複数の列の要約統計量を計算する

 #calculate mean of col1 and col2
df %>%
  summarise(across(c(col1, col2), mean, na. rm = TRUE ))

方法 3: 複数の列の複数の要約統計量を計算する

 #calculate mean and standard deviation for col1 and col2
df %>%
  summarise(across(c(col1, col2), list(mean=mean, sd=sd), na. rm = TRUE ))

次の例は、次のデータ フレームで各メソッドを使用する方法を示しています。

 #create data frame
df <- data. frame (conf=c('East', 'East', 'East', 'West', 'West', 'West'),
                 points=c(22, 25, 29, 13, 22, 30),
                 rebounds=c(12, 10, 6, 6, 8, 11))

#view data frame
df

  conf points rebounds
1 East 22 12
2 East 25 10
3 East 29 6
4 West 13 6
5 West 22 8
6 West 30 11

例 1: 関数を複数の列に適用する

次のコードは、 across()関数を使用してポイント列リバウンド列の値を 2 で乗算する方法を示しています。

 library (dplyr)

#multiply values in points and rebounds columns by 2
df %>% 
  mutate(across(c(points, rebounds), function (x) x*2))

  conf points rebounds
1 East 44 24
2 East 50 20
3 East 58 12
4 West 26 12
5 West 44 16
6 West 60 22

例 2: 複数の列の要約統計量を計算する

次のコードは、 across()関数を使用してポイント列リバウンド列の平均値を計算する方法を示しています。

 library (dplyr)

#calculate mean value of points an rebounds columns
df %>%
  summarise(across(c(points, rebounds), mean, na. rm = TRUE ))

  rebound points
1 23.5 8.833333

is.numeric関数を使用して、データ フレーム内のすべての数値列の要約統計量を自動的に計算することもできることに注意してください。

 library (dplyr)

#calculate mean value for every numeric column in data frame
df %>%
  summarise(across(where(is. numeric ), mean, na. rm = TRUE ))

  rebound points
1 23.5 8.833333

例 3: 複数の列の複数の要約統計量を計算する

次のコードは、 across()関数を使用してポイント列リバウンド列の平均と標準偏差を計算する方法を示しています。

 library (dplyr)

#calculate mean and standard deviation for points and rebounds columns
df %>%
  summarise(across(c(points, rebounds), list(mean=mean, sd=sd), na. rm = TRUE ))

  points_mean points_sd rebounds_mean rebounds_sd
1 23.5 6.156298 8.833333 2.562551

: across()関数の完全なドキュメントはここで見つけることができます。

追加リソース

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

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

コメントを追加する

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