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

R plotのPDFやPNGへの保存 - PDFなら複数の画像保存も可能
Rのplot (グラフ) は、PDFやPNGファイルとして保存することができます。操作は、通常のグラフの描画と同じです。違うところは、前もって保存先のデバイスをオープンし、描画終了後に明示的にクローズするだけです。PDFなら1つの...
R 使い方 組込みデータセット iris データフレーム・ベクトル・リスト
Rのデータ型について学びます。使うデータは、組込みデータセットの「iris」です。irisの構造を眺めたり要約統計量を求めることで、データフレーム・ベクトル型・リスト型について簡単に学びます。とにかく早く問題解決したい人はこちら>...
ratio 1.5倍は、logFCで何?
bioinfomatics では、ratio や logFC を変動の閾値としてよく使います。ratio 2倍・4倍なら、対数表現も1・2と簡単にわかりますが、1.5倍などを閾値とした場合は、対数で何になるか覚えておくのは大変です...
R 知っていると便利!パッケージ読込みとヘルプ
Rのインストール済みのパッケージについて調べます。スクリプトがちゃんと動かないとき、「何がインストールされているか?」また、「何がインストールされていないか?」がヒントになるときがあります。とにかく早く問題解決したい人はこちら>>...
R 関数 maxの位置・minの位置を求める
Rで、最大値や最小値を求めるのは簡単ですが、「最大値・最小値の位置は?」という問題を考えてみたいと思います。とにかく早く問題解決したい人はこちら>>直接、データ解析相談最大値・最小値を求める最大値・最小値を求めるの...
R 使い方 集計に便利な関数 aggregate
データフレームを使って集計を行う場合に、使いやすい関数があります。aggregate関数です。データフレームの計算にはapply系の関数がよく使われますが、わかりづらいという方にはオススメの方法です。とにかく早く問題解決したい人は...
R 使い方 データフレーム 累積和を求める
データフレームやmatrixで累積和を求める機会ありませんか?「前の行の値」に「現在の行の値」を繰り返し足していくことで求められますが、せっかく「R」を使っているのに、for文やインデックスを使って求めるのも残念な感じがします。そんなとき...

関連記事2

R 4.0 インストール ubuntu
Rのインストール手順について。最近よくつかう「tidyverse」も一緒にインストールします。とにかく早く問題解決したい人はこちら>>直接、データ解析相談R 4.0 インストール手順事前設定$ su...
R 使い方 debug(デバッグ)方法 スクリプトの書き方
スクリプトが思ったように動かない、そんなときはバグ(プログラムの間違い)があると言われます。スクリプトを書く場合、そのような間違いを書かないように注意することは当然ですが、完全に防ぐのは難しいことです。スクリプトが思うように動かな...
R 使い方 文字列処理(文字列検索・文字列置換)
統計ソフトRは、統計処理やグラフの描画でよく用いられます。しかし、色々なことに活用していると、「文字列処理ができると便利だな」と思うことがあります。統計ソフトRには、文字列処理のための便利な関数が準備されているので、代表的な関数についてま...
R 使い方 while 繰り返し スクリプトの書き方
Rで「条件を満たす間ずっと繰り返し」を行う場合は、whileを使います。とにかく早く問題解決したい人はこちら>>直接、データ解析相談while スクリプトの書き方while文は、条件式と一緒に書きます。条件を満たす...
R 使い方 for 繰り返し スクリプトの書き方
Rで単純な繰り返し制御を行う場合は、forを使います。とにかく早く問題解決したい人はこちら>>直接、データ解析相談for スクリプトの書き方forは繰り返し制御の基本的な構造です。集合には、ベクターやデータフレーム...
R switch 使い方 スクリプトの書き方
R の switch文は、「複数の条件」とそれに「対応した処理」をまとめて記述できるので、if文よりも簡潔にかけます。R の switchの条件は、文字列で書かれたラベルで判断します。R の switch文の「書き方」と使い方を、サンプル...
R 使い方 if 条件分岐 スクリプトの書き方
R の if文は、フロー制御で最も単純な条件分岐です。条件に「一致したかどうか」という判断で、次に実行するコマンドを変更したりするときに使います。Rのif文の「書き方」、ANDやORを使った複数条件の指定の仕方などを、サンプルを交...
R 使い方 関数 スクリプトの書き方
Rの使い方として、プログラムの基本構成となる関数の作り方について。とにかく早く問題解決したい人はこちら>>直接、データ解析相談R 使い方 関数を利用したプログラムメッセージの表示や、メッセージの長さを取得する関数を...
R 使い方 Hello World スクリプトの書き方
Rでプログラムを書きます。今回は、プログラムの基本「Hello World!」です。とにかく早く問題解決したい人はこちら>>直接、データ解析相談Hello World プログラムHello Worldプログラムは、...
R 使い方 行列(マトリックス) スクリプトの書き方
Rのマトリックスは、他のプログラミング言語と同様、数値や文字などの1種類のデータを2次元配列として保持するデータ構造です。基本的な構造を理解すれば、Rはもっと使いやすいツールになります。マトリックスの使い方について。とにか...
R 使い方 リスト スクリプトの書き方
Rのリストは、他のプログラミング言語と同様、各項目にたいして名前をつけたベクトルです。基本的な構造を理解すれば、Rはもっと使いやすいツールになります。リストの使い方について。とにかく早く問題解決したい人はこちら>>直接、デ...
R 使い方 ベクトル スクリプトの書き方
Rのベクトルは、他のプログラミング言語と同様、数値や文字などの1種類のデータを順番に保持するデータ構造です。基本的な構造を理解すれば、Rはもっと使いやすいツールになります。Rのベクトルの使い方について。とにかく早く問題解決...
R 使い方 データフレーム・ファクター スクリプトの書き方
Rのデータフレーム・ファクターは、他のプログラミング言語のデータ構造とは異なる独特な構造。でも、とてもよく使う構造で、必ず使いこなせるようになりましょう。基本的な構造を理解すれば、Rはもっと使いやすいツールになります。Rのデータフ...
R 使い方 データ構造まとめ スクリプトの書き方
Rで使うデータ構造をまとめてみます。一気に眺めることで、それぞれの特徴を理解できるかもしれません。とにかく早く問題解決したい人はこちら>>直接、データ解析相談Rのデータ構造ベクトルベクトルは、最も基本的な構...
R 使い方 データ 読込み テキスト,csv,エクセル,データベース スクリプトの書き方
「統計ソフト R」にデータを読み込むのは簡単です。タブ区切りのデータやエクセル・DBなどからデータを取り込むことができます。とにかく早く問題解決したい人はこちら>>直接、データ解析相談Rにデータを読み込む「統計ソフ...
タイトルとURLをコピーしました