R言語でデータフレームから指定した列ベクトルを取得する方法について解説します。このような方法はいくつかあり、R言語に標準で搭載されている機能を使用した方法もありますが、ここではtidyverseパッケージに含まれているdplyrパッケージのpull()を使用した方法についてお伝えします。pull()を使用する利点は、パイプ演算子と親和性が高くR言語に標準で搭載されている機能を使用する方法よりも可読性が高いコードが書けることが挙げられます。

pull()の使い方

まずは、pull()の使い方について確認しておきます。


pull(.data, var = -1, name = NULL, ...)

pull()の引数の意味

.data

データフレームまたはデータフレーム拡張(例:tibble)、遅延データフレーム(例:dbplyrまたはdtplyrから)を指定します。

var = -1

次を指定します。デフォルトでは、最後の列が返されます(最近作成した列であると仮定します)。この引数は式によって取得され、準引用符をサポートします(列名と列の位置を引用符で解除できます)。

  • 列名
  • 正の整数:左から数えて位置を示します
  • 負の整数:位置を右からカウントします
name = NULL

名前付きベクトルの名前として使用する列を指定する省略可能なパラメーターです。
varと同様の方法で指定されます。

サンプルコード

次は、デフォルトの列(最後の列)をpull()でベクトルを取得するサンプルコードです。irisデータセットの最後の列名「Species」のベクトルが取得されることが確認できます。


iris |>
  pull() |>
  str()

Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

次は、列名を指定してpull()でベクトルを取得するサンプルコードです。


iris |>
  pull(Sepal.Length) |>
  str()

 num [1:150] 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
R入門 データフレームから指定した列ベクトルの取得