ウェブ上で、rbind()
を使用して2つのデータフレームを結合し、同じタスクがbind_rows()
functionによって実行されることがわかりました。 。
その後、私はこれらの2つの機能の違いは何であり、どちらを使用する方が効率的かわかりませんか?
いくつかの違いは別として、bind_rows
over rbind
を使用する主な理由の1つは、列数が異なる2つのデータフレームを結合することです。 rbind
はそのような場合にエラーをスローしますが、bind_rows
は、値がデータフレームによって提供されないデータフレームの1つで欠落している列の行に「NA
」を割り当てます。
次のコードを試して、違いを確認してください。
a <- data.frame(a = 1:2, b = 3:4, c = 5:6)
b <- data.frame(a = 7:8, b = 2:3, c = 3:4, d = 8:9)
2つの呼び出しの結果は次のとおりです。
rbind(a, b)
> rbind(a, b)
Error in rbind(deparse.level, ...) :
numbers of columns of arguments do not match
library(dplyr)
bind_rows(a, b)
> bind_rows(a, b)
a b c d
1 1 3 5 NA
2 2 4 6 NA
3 7 2 3 8
4 8 3 4 9
bind_rows()
は、異なる列数のデータフレームを結合するという意味でより機能的ですが(列が欠落している行にNA
を割り当てる)、同じデータフレームを結合する場合列、rbind()
をお勧めします。
rbind()
は、はるかに計算効率が高い結合しているデータが同じ方法でフォーマットされている場合で、列の数が異なると単純にエラーをスローします。ビッグデータセットの時間を大幅に節約できます。これらの状況には、rbind()
を強くお勧めします。それでも、データに異なる列がある場合は、bind_rows()
を使用する必要があります。