行の結合や結合は、Rのrbind()関数を使用することで非常に簡単です。
rbind()は行バインディングを意味します。より簡単な言葉で言えば、複数の行を1つのバッチとして結合することです。これには、2つのデータフレーム、ベクトルなどを結合することが含まれる場合もあります。
この記事では、Rプログラミングでのrbind()関数の使用と応用について説明します。
時間を無駄にせず、さっそく始めましょう!
rbind()関数の構文
rbind(): rbindまたは行バインディング関数は、複数の行のグループをバインドまたは結合するために使用されます。
rbind(x,x1)
ここで:
- X = the input data.
- X1 = バインドするデータ。
rbind()を使用した行のバインディングのアイデア
複数のデータフレームの行をバインドまたは結合するアイデアは、データ操作に非常に便利です。
以下の図は、rbind()関数の動作のアイデアを確認できます。
異なるデータフレームの行がrbind()関数によってどのようにバインド/結合されるかがわかります。
Rのrbind()関数の実装
Rのrbind()関数は、異なるデータグループの行を結合するために使用されることをご存知の通りです。
このセクションでは、簡単なデータフレームを構築し、それらをrbind()関数を使用して結合してみましょう。
#データフレームの作成
Student_details<-c("Mark","John","Fredrick","Floyd","George")
Student_class<-c("High school","College","High school","High school","College")
df1<-data.frame(Student_class,Student_details)
df1
上記のコードは、学生の詳細と名前を表示する簡単なデータフレームを構築します。
Student_class Student_details
1 High school Mark
2 College John
3 High school Fredrick
4 High school Floyd
5 College George
さて、これで5行のデータフレームができました。別のデータフレームを作成しましょう。
#データフレームの作成
Student_details<-c("Bracy","Evin")
Student_class<-c("High school","College")
Student_rank<-c("A","A+")
df2<-data.frame(Student_class,Student_details,Student_rank)
df2
Student_class Student_details
1 High school Bracy
2 College Evin
これで異なる行数の2つのデータフレーム(df1とdf2)ができました。rbind()関数を使用してこれら2つのデータフレームを単一のデータフレームに結合しましょう。
それがどのように機能するか見てみましょう。
信じられないかもしれませんが、結合プロセス全体はわずか1行のコードで完了します。
#2つの入力データフレームの行を結合
rbind(df1,df2)
Student_class Student_details
1 High school Mark
2 College John
3 High school Fredrick
4 High school Floyd
5 College George
6 High school Bracy
7 College Evin
結果のデータフレームは、上記の出力に示されているように、両方のデータフレームの結合バージョンになります。
bind()関数を使用して長さの異なる2つのデータフレームを結合する
前のセクションでは、2つの行グループを結合しました。
このセクションでは、Rのrbind関数を使用して2つのデータセットを結合します。
#データフレームを作成します
Student_details<-c("Mark","John","Fredrick","Floyd","George")
Student_class<-c("High school","College","High school","High school","College")
df1<-data.frame(Student_class,Student_details)
df1
Student_class Student_details
1 High school Mark
2 College John
3 High school Fredrick
4 High school Floyd
5 College George
#データフレームを作成します
Student_details<-c("Bracy","Evin")
Student_class<-c("High school","College")
Student_rank<-c("A","A+")
df2<-data.frame(Student_class,Student_details,Student_rank)
df2
Student_class Student_details Student_rank
1 High school Bracy A
2 College Evin A+
rbind(df1,df2)
Error in rbind(deparse.level, ...) :
numbers of columns of arguments do not match
あれ、何が起こったのでしょうか?なぜ関数がエラーを返しているのでしょうか?
エラーメッセージを読むと、列の数が一致しないと述べています。
「df1」には2つの列があり、「df2」には3つの列があります。
心配しないでください!このようなシナリオで私たちを助けてくれるのがbind_rows()関数です。
bind_rows()関数を使用して不均衡なデータセットを結合する
bind_rows()は、dplyrパッケージの一部である関数です。この関数を実行するためには、まずdplyrパッケージをインポートする必要があります。
私たちは、上記のセクションで使用されている同じデータフレーム、すなわちdf1とdf2を使用しています。それがどのように機能するかを見てみましょう。
#必要なパッケージのインストール
install.packages('dplyr')
#ライブラリのインポート
library(dplyr)
#行を結合
bind_rows(df1,df2)
Student_class Student_details Student_rank
1 High school Mark <NA>
2 College John <NA>
3 High school Fredrick <NA>
4 High school Floyd <NA>
5 College George <NA>
6 High school Bracy A
7 College Evin A+
これで、bind_rows関数がこれら2つの異なる列のデータセットを結合しています。空白のスペースは
rbind()関数を使用して2つのデータセットをバインドする
このセクションでは、Rで2つのデータセット全体を結合する方法を見ていきます。
それがどのように機能するかを見てみましょう。
BODデータセットを使用する予定です。これにはわずか6行しかなく、バインドされた行を簡単に観察できます。
#2つのデータセットを結合
rbind(BOD,BOD)
Time demand
1 1 8.3
2 2 10.3
3 3 19.0
4 4 16.0
5 5 15.6
6 7 19.8
---------------
7 1 8.3
8 2 10.3
9 3 19.0
10 4 16.0
11 5 15.6
12 7 19.8
BODデータセットには6行があります。データを2回渡しているため、rbind()関数は上記のように同じ行を結合します。
そして、bind_rows()関数もあることを忘れないでください。
#2つの異なるデータセットを結合
bind_rows(BOD,women)
Time demand height weight
1 1 8.3 NA NA
2 2 10.3 NA NA
3 3 19.0 NA NA
4 4 16.0 NA NA
5 5 15.6 NA NA
6 7 19.8 NA NA
7 NA NA 58 115
8 NA NA 59 117
9 NA NA 60 120
10 NA NA 61 123
11 NA NA 62 126
12 NA NA 63 129
13 NA NA 64 132
14 NA NA 65 135
15 NA NA 66 139
16 NA NA 67 142
17 NA NA 68 146
18 NA NA 69 150
19 NA NA 70 154
20 NA NA 71 159
21 NA NA 72 164
これらは、bind()およびbind_rows関数の動作とアプリケーションを明示的に示す例です。
I hope these illustrations helped you in understanding these functions.
複数の行グループをRでバインドする
このセクションでは、関数rbind()を使用して複数の(2つ以上の)行グループをバインドする方法に焦点を当てます。動作を見てみましょう。
# 3つのデータセットの行をバインド
bind_rows(BOD,women,ToothGrowth)
Time demand height weight len supp dose
1 1 8.3 NA NA NA <NA> NA
2 2 10.3 NA NA NA <NA> NA
3 3 19.0 NA NA NA <NA> NA
4 4 16.0 NA NA NA <NA> NA
5 5 15.6 NA NA NA <NA> NA
6 7 19.8 NA NA NA <NA> NA
7 NA NA 58 115 NA <NA> NA
8 NA NA 59 117 NA <NA> NA
9 NA NA 60 120 NA <NA> NA
10 NA NA 61 123 NA <NA> NA
11 NA NA 62 126 NA <NA> NA
12 NA NA 63 129 NA <NA> NA
13 NA NA 64 132 NA <NA> NA
14 NA NA 65 135 NA <NA> NA
15 NA NA 66 139 NA <NA> NA
16 NA NA 67 142 NA <NA> NA
17 NA NA 68 146 NA <NA> NA
18 NA NA 69 150 NA <NA> NA
19 NA NA 70 154 NA <NA> NA
20 NA NA 71 159 NA <NA> NA
観察してください。すべての3つのデータセットが、Rのbind_rows()関数によって結合または結合されました。これがbind_rows()関数の美しさです。
これら2つの関数には、Rプログラミングでのデータ操作に無限の応用があります。
まとめ
Rのrbind()関数とbind_rows()関数は、データ操作に関するときに最も有用な関数です。
rbind()関数を使用して、同じ列数の2つのデータフレームを簡単にバインドできます。
同様に、データフレームの列数が異なる場合は、dplyrパッケージと一緒にbind_rows()関数を使用できます。
さて、今は以上です。バインディングを楽しんで!!!
さらに読む:Rのドキュメント
Source:
https://www.digitalocean.com/community/tutorials/rbind-function-r