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 ...

関連する記事

  • R言語 CRAN Task View:欠損データR言語 CRAN Task View:欠損データ CRAN Task View: Missing Dataの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Julie Josse, Imke Mayer, Nicholas Tierney, and Nathalie Vialaneix (r-miss-tastic […]
  • MySQL 月の差分を計算する方法MySQL 月の差分を計算する方法 MySQLで、月の差分を計算する方法をお伝えする。 計算は、PERIOD_DIFF関数を用いれば簡単に求めることができる。 これは、二つの期間の差の月数を返す関数である。 PERIOD_DIFF(P1, […]
  • Opal ユーザーを登録する方法Opal ユーザーを登録する方法 OBiBaのOpalサーバにユーザーを登録する方法をお伝えします。 ユーザー登録はAdministratorが行うことができる機能になります。 そのため、administratorでサインインします。 表示された画面の右上にあるAdministrationをクリックします。 Administration機能一覧から、Users and […]
  • R group_byにsummaryを適用する方法R group_byにsummaryを適用する方法 R言語のtidyverseパッケージを用いて、group_by関数によりグループ分けした結果に対してsummary関数を適用する方法についてお伝えいたします。 ここでお伝えする方法は、tidyverseパッケージを用いる方法となりますので、tidyverseパッケージを読み込んでおきます。 > […]
  • R スミルノフ・グラブス検定を繰り返し用いて外れ値を除去する方法 スミルノフ・グラブス検定は、正規分布を仮定した標本において、最大値または最小値が外れ値かどうか判定する検定の一つです。 外れ値を除去する際、外れ値を一つずつ検証することよりも、外れ値がすべて除去されたデータだけがほしいときもあると思います。 ここでは、正規分布を仮定したデータからスミルノフ・グラブス検定を繰り返し用いて外れ値を除去するソースコードをご紹介します。 こ […]
R データフレームから特定の型の列を抽出する方法