Rのrbind()関数-行のバインディングを簡単に行う

行の結合や結合は、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