統計プログラムRの勉強日記

Rに関して勉強してきたことを紹介します

【R】列を取捨選択する方法|select関数

select関数タイトル

はじめに

今回はデータフレームから列を選択して取得する方法について紹介します。列が多いデータから必要な列だけ抽出して内容を確認したいときなどに役立つ機能だと思います。データ操作の基本となりますのでぜひマスターしてください!

紹介する関数

今回紹介する関数はselect関数です。これはdplyrパッケージに含まれている関数となります。機能としてはデータフレームの列を列名や列番号で取捨選択できます。また取得する際は1つだけでなく複数の列を一気に選択することができます

 

使い方

基本的な使い方は以下の通りです。

library(dplyr)
select(対象データフレーム, 列名)
  • 対象データフレーム:列の取捨選択を行いたいデータフレーム
  • 列名:取捨選択したい列の名前か列番号

まずはdplyrパッケージに含まれている関数なので使う時はまずパッケージを呼び出す必要があります。
使う時は第2引数以降の列名は取捨選択する対象とする列名を列挙すればよいです。

具体例

欲しい列を名前で選択する

まずは基本的な使い方である列名で必要な列を残す使い方を紹介します。使い方は簡単で残したい列の列名を第2引数以降で列挙するだけで大丈夫です。また、列名を列挙する時は列名をダブルクオーテーション(" ")で囲う必要はありません。
今回はdplyrに付属しているデータであるstarwarsデータからスターウォーズのキャラクター名(name列)、身長(height列)、体重(mass列)、種族(species列)の4つの列を選択抽出するコードを紹介します。

library(dplyr)
data = head(dplyr::starwars)
select(data, name, height, mass, species)

出力される結果はこんな感じになります。(クリックで表示)

name height mass species
 Luke Skywalker  172 77 Human
 C-3PO  167 75 Droid
 R2-D2  96 32 Droid
 Darth Vader  202 136 Human
 Leia Organa  150 49 Human
 Owen Lars  178 120 Human

欲しい列を列番号で選択する

次に列番号で必要な列を残す方法を紹介します。列番号で列を選択する時も列名で選択する時と同様に第2引数以降で列名を列挙するだけで大丈夫です。列名が長ったらしいときなどは列名をいちいち書くより列番号で選択した方が楽だと思います。
ここでは先ほどの例と同様のことを今度は列番号で指定するパターンでやってみたいと思います。

library(dplyr)  
data = head(dplyr::starwars)  
select(data, c(1:3, 11))  

出力される結果はこんな感じになります。(クリックで表示)

name height mass species
 Luke Skywalker  172 77 Human
 C-3PO  167 75 Droid
 R2-D2  96 32 Droid
 Darth Vader  202 136 Human
 Leia Organa  150 49 Human
 Owen Lars  178 120 Human

不要な列を取り除く

最後に不要な列を取り除く方法を紹介します。不要な列を取り除くときは名前の前に ー を付けます。計算をするときのように対象のデータから不要な列を差し引くイメージですね。
取り除くときは列名でも列番号でもどちらの方法も使えます。また、第2引数以降に取り除く列と残す列のどちらも同時に列挙することもできます。
今回も上でやったのと同様のことを不要な列を取り除いて実施したいと思います。

library(dplyr)  
data = head(dplyr::starwars)  
select(data, -c(4:9,11:13))  

出力される結果はこんな感じになります。(クリックで表示)

name height mass species
 Luke Skywalker  172 77 Human
 C-3PO  167 75 Droid
 R2-D2  96 32 Droid
 Darth Vader  202 136 Human
 Leia Organa  150 49 Human
 Owen Lars  178 120 Human

まとめ

いかがだったでしょうか。今回はデータ解析する時必ず行うといっても過言ではない列の選択に関して基本的な方法をご紹介しました。他にもいろいろな方法があるので今後ご紹介します。