R言語で、リスト内のデータフレームを列方向に結合する方法について解説します。リストの操作は様々な方法がありますが、ここではtidyverseパッケージに含まれているpurrrパッケージのlist_cbind()を使用した方法についてお伝えします。

list_cbind()の概要

list_cbind()は、リスト内のデータフレームを列方向に結合するための関数です。list_cbind()は、vctrs::vec_cbind()を使用して要素を列に結合することにより、要素をデータフレームに結合します。

list_cbind()の使い方

purrr::list_cbind()の使い方は次になります。


list_cbind(
  x,
  ...,
  name_repair = c("unique", "universal", "check_unique"),
  size = NULL
)

list_cbind()の引数の意味

x

リストを指定します。リストにはデータフレームまたはNULLのみが含まれている必要があります。

これらのドットは将来の拡張用であり、空である必要があります。

name_repair = c(“unique”, “universal”, “check_unique”)

「unique」、「universal」、「check_unique」のいずれかを指定します。

  • unique: 重複した列名は、一意になるように接尾辞(サフィックス)が追加されます
  • universal: 構文の規則に従う一意的な列名を割り当てることで、エラーを発生させません
  • check_unique: 列名の修復は実行さず、代わりに列名が「unique」基準に適合しない場合はエラーが発生します
size = NULL

すべての入力が同じサイズ(行数)になるようにするためのオプションの整数サイズを指定します。

準備

あらかじめ、tidyverseパッケージを読み込んでおきます。


library(tidyverse)

解説のために、次のリストを使用します。


x <- list(
    x1 = data.frame(a = 1:10),
    x2 = data.frame(b = letters[1:10])
  )

リスト内のデータフレームを列方向に結合する

リスト内のデータフレームを列方向に結合するには次のようにします。


list_cbind(x)

    a b
1   1 a
2   2 b
3   3 c
4   4 d
5   5 e
6   6 f
7   7 g
8   8 h
9   9 i
10 10 j
R×purrr::list_cbind リスト内のデータフレームを列方向に結合する