R言語で、リスト内のデータフレームを行方向に結合する方法について解説します。リストの操作は様々な方法がありますが、ここではtidyverseパッケージに含まれているpurrrパッケージのlist_rbind()を使用した方法についてお伝えします。
list_rbind()の概要
list_rbind()は、リスト内のデータフレームを行方向に結合するための関数です。list_rbind()は、vctrs::vec_rbind()と行結合して要素をデータフレームに結合します。
list_rbind()の使い方
purrr::list_rbind()の使い方は次になります。
list_rbind(x, ..., names_to = rlang::zap(), ptype = NULL)
list_rbind()の引数の意味
x
リストを指定します。リストにはデータフレームまたはNULLのみが含まれている必要があります。
…
これらのドットは将来の拡張用であり、空である必要があります。
names_to = rlang::zap()
デフォルトでは、names(x)は失われます。これを保持するには、names_toに文字列を指定すると、名前がその名前の列に保存されます。names_toが指定されていて、xに名前が付けられていない場合は、名前の代わりに要素の位置が使用されます。
ptype = NULL
出力タイプが常に同じであることを保証するオプションのプロトタイプを指定します。
準備
あらかじめ、tidyverseパッケージを読み込んでおきます。
library(tidyverse)
リスト内のデータフレームを行方向に結合する
リスト内のデータフレームを行方向に結合するには次のようにします。
x <- list(
x1 = data.frame(a = 1:10),
x2 = data.frame(b = letters[1:10])
)
list_rbind(x)
a b
1 1 <NA>
2 2 <NA>
3 3 <NA>
4 4 <NA>
5 5 <NA>
6 6 <NA>
7 7 <NA>
8 8 <NA>
9 9 <NA>
10 10 <NA>
11 NA a
12 NA b
13 NA c
14 NA d
15 NA e
16 NA f
17 NA g
18 NA h
19 NA i
20 NA j
R×purrr::list_rbind リスト内のデータフレームを行方向に結合する