R subset関数 データフレームやmatrixからの条件指定による行・列の抽出

R の subset関数は、データフレームやマトリックスから条件にマッチした部分集合を取り出します。条件指定の主なパラメータは、「subset」と「select」です。「subset」では行を抽出するための条件式、「select」では列を抽出する条件を指定します。

R subset関数 データフレームからの抽出

R の subset関数に、対象となるデータ (データフレーム) 、「subset」もしくは「select」で条件を指定することで、条件を満たすデータだけを取り出すことができます。

R> df <- data.frame(name=I(c("kumazou1", "kumazou2", "kumazou3")), 
                     age=c(101, 102, 103), 
                     color=c("red", "green", "yellow")) 
R> df
      name age  color
1 kumazou1 101    red
2 kumazou2 102  green
3 kumazou3 103 yellow

# subset(行の条件)を指定
R> subset(df, age<103)
      name age color
1 kumazou1 101   red
2 kumazou2 102 green

# select(列の条件)を指定
R> subset(df, select=c(name, color))
      name  color
1 kumazou1    red
2 kumazou2  green
3 kumazou3 yellow

# subsetとselectを組み合わせ
R> df.sub <- subset(df, subset=age<103, select=-2) R> df.sub
      name color
1 kumazou1   red
2 kumazou2 green

R subset関数 データフレーム以外からの抽出

R の subset関数は、ベクターやmatrixでも条件を指定した抽出を行うことができます。

ベクターからの抽出

ベクターの場合は、インデックス形式で直接指定しても簡潔で分り易いです。

R> df.v <- letters 
R> df.v
 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" ...
[20] "t" "u" "v" "w" "x" "y" "z"

# subset関数で指定する場合
> subset(df.v, df.v>"w")
[1] "x" "y" "z"

# 直接指定する場合
> df.v[df.v>"w"]
[1] "x" "y" "z"

マトリックスからの抽出

> mt <- matrix(sample(12), 3, 4) 
> mt
     [,1] [,2] [,3] [,4]
[1,]    5    4    2    8
[2,]    1   12   10    7
[3,]    3    9    6   11

# subset関数で行と列の条件を指定する場合
> subset(mt, mt[,3]>=5, select=c(1,2,3))
     [,1] [,2] [,3]
[1,]    1   12   10
[2,]    3    9    6

# 直接指定する場合
> mt[mt[,3]>=5, -4]
     [,1] [,2] [,3]
[1,]    1   12   10
[2,]    3    9    6

関連記事
R 使い方 組込みデータセット iris データフレーム・ベクトル・リスト
R 使い方 for 繰り返し スクリプトの書き方
R 使い方 データ構造まとめ スクリプトの書き方
R 使い方 データ 読込み テキスト,csv,エクセル,データベース スクリプトの書き方

実験データの解析や論文用グラフ作成のヒントになりそうな、プログラミング・統計処理の参考になる書籍をまとめて紹介しています。是非、参考にしてみて下さいね。



ピックアップ記事

  1. awk for 繰り返し処理 簡単なサンプルでわかる インクリメント・デクリメント、変わった繰り返し

    awkのfor文は、カウンタを目印にして処理を繰り返したいときによく使われます。for文では、カウ…
  2. R subset関数 データフレームやmatrixからの条件指定による行・列の抽出

    R の subset関数は、データフレームやマトリックスから条件にマッチした部分集合を取り出します…
  3. awk if サンプルでわかる条件文の書き方 一致・大小比較・正規表現を簡潔に書く方法

    awkのif条件文は、条件によって処理をわけたいときに使います。条件式では、0の判定・関係演算子・…

人気記事

  1. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…
  2. Excel, その他, 統計

    z-score 計算方法 エクセル(Excel) 編
    統計処理で、大きく変化しているなどの判断基準にも使われる値…
  3. R データ型 - 文字列・ベクター・データフレーム・マトリックス など-, R言語, スクリプト

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…

おすすめ記事

  1. bash 応用, シェルスクリプト

    シェル スクリプト ファイル存在チェック・空のファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…
  2. awk, bash 文字列操作, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…
  3. R言語, グラフ

    R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
    Rによるplot(グラフ)の描画は、手軽で大変便利です。た…