Rのデータフレームから特定の型の列を抽出する方法をお伝えします。

サンプルデータとして、irisを用います。
データフレームの構造をstr関数で確認します。


> str(iris)
'data.frame':	150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

データフレームから特定の型の列を抽出するには、baseに含まれるFilter関数を用います。
Filter関数の第一引数に特定の型を確認する関数を指定し、第二引数に対象のデータフレームを指定します。

因子型の抽出

データフレームから因子型の列を抽出するには、Filter関数の第一引数にis.factor関数を指定します。
サンプルデータで因子型の列を抽出した結果は次になります。


> ext <- Filter(is.factor, iris) 
> str(ext)
'data.frame':	150 obs. of  1 variable:
 $ Species: Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

数値型の抽出

データフレームから数値型の列を抽出するには、Filter関数の第一引数にis.numeric関数を指定します。
サンプルデータで数値型の列を抽出した結果は次になります。


> ext <- Filter(is.numeric, iris) 
> str(ext)
'data.frame':	150 obs. of  4 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...

複数の型の抽出

データフレームから複数の型の列を抽出するには、Filter関数の第一引数に独自の関数を作成して指定します。
例えば、因子型と数値型の列を抽出するには、次のようなコードになります。


> ext <- Filter(function(x){any(is.factor(x), is.numeric(x))}, iris) 
> str(ext)
'data.frame':	150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

関連する記事

  • UbuntuでRStudioの外観をDarkに変更する方法UbuntuでRStudioの外観をDarkに変更する方法 Ubuntu上のRStudio(ver 1.0.153)の外観をダークテーマに変更する方法をお伝えします。 2017年8月31日時点の安定版RStudioには、外観を変更する機能は搭載されておりません。しかし、daily […]
  • R ggplotに回帰直線の式を表示する方法R ggplotに回帰直線の式を表示する方法 R言語のggplotにおいて、グラフに回帰直線の式を表示する方法をお伝えします。 ggplotのグラフに回帰直線の式を表示する方法はいくつかあります。 ここでは最も簡単と思われるggpmiscパッケージを用いて回帰直線の式を表示する方法をお伝えします。 環境 今回の作業環境をsessionInfo()関数で確認しておきます。 > […]
  • R dplyrパッケージのgroup_by_関数で複数の文字列を指定する方法R dplyrパッケージのgroup_by_関数で複数の文字列を指定する方法 Rのdplyrパッケージのgroup_by関数は指定した列をグルーピングできるので便利ですが、文字列を指定できません。 このパッケージのgroup_by_関数は文字列を指定できますが、複数の文字列を指定する場合には少し工夫が必要になります。 ここでは、異なるダイエットの雛の体重と年齢が収められているChickWeightをサンプルデータとします。 > […]
  • R言語 CRAN Task View:薬物動態データの解析R言語 CRAN Task View:薬物動態データの解析 CRAN Task View: Analysis of Pharmacokinetic Dataの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Bill Denney Contact: wdenney at […]
  • Python KNPを用いて係り受け構造を抽出する方法Python KNPを用いて係り受け構造を抽出する方法 Ubuntu14.04環境で、Python3と日本語構文・格・照応解析システムKNPを用いて係る語と受ける語のペアを抽出する方法をご紹介する。 係り受け構造を抽出するPython3のソースコードは次である。 from pyknp import KNP def […]
R データフレームから特定の型の列を抽出する方法