Dplyrでbind_rowsとbind_colsを使用する方法(例付き)


R のdplyrパッケージのbinding_rows()関数を使用して、2 つのデータ フレームを行ごとにバインドできます。

 bind_rows(df1, df2, df3, ...)

同様に、 dplyr のbinding_cols()関数を使用して、列ごとに 2 つのデータ フレームをバインドできます。

 bind_cols(df1, df2, df3, ...)

次の例は、これらの各関数を実際に使用する方法を示しています。

例 1:bind_rows() を使用する

次のコードは、 bind_rows()関数を使用して、行に基づいて 3 つのデータ フレームをバインドする方法を示しています。

 library (dplyr)

#create data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  dots=c(12, 14, 19, 24))


df2 <- data. frame (team=c('A', 'B', 'C', 'C'),
                  dots=c(8, 17, 22, 25))

df3 <- data. frame (team=c('A', 'B', 'C', 'C'),
                  assists=c(4, 9, 12, 6))

#row bind together data frames
bind_rows(df1, df2, df3)

   team points assists
1 to 12 NA
2 A 14 NA
3 B 19 NA
4 B 24 NA
5 to 8 NA
6 B 17 NA
7 C 22 NA
8 C 25 NA
9 A NA 4
10 B NA 9
11 C NA 12
12 C NA 6

データ フレームがすべて同じ列名を持たない場合、この関数は自動的に欠損値を NA で埋めることに注意してください。

例 2:bind_cols() を使用する

次のコードは、 bind_cols()関数を使用して、列に基づいて 3 つのデータ フレームをバインドする方法を示しています。

 library (dplyr)

#create data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  dots=c(12, 14, 19, 24))


df2 <- data. frame (team=c('A', 'B', 'C', 'C'),
                  dots=c(8, 17, 22, 25))

df3 <- data. frame (team=c('A', 'B', 'C', 'C'),
                  assists=c(4, 9, 12, 6))

#column bind together data frames
bind_cols(df1, df2, df3)

  team points assists steals blocks rebounds
1 A 12 A 8 A 4
2 A 14 B 17 B 9
3 B 19 C 22 C 12
4 B 24 C 25 C 6

各データ フレームの元の列が、 bind_cols()関数で指定した順序で最終データ フレームに表示されることに注意してください。

追加リソース

次のチュートリアルでは、R でrbind()関数とcbind()関数を使用してデータ フレームをバインドする方法を示します。

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

コメントを追加する

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