データフレームから、subset
を使って、特定の行や列を抽出する方法。
今回は、下記データ(Data)を使用。
> print(Data)
ID Cohort Sex Age ADNC LBDSubtype
1 149 LBD M 83 Low BP
2 634 AD M 78 High DN
3 632 AD F 75 High BP
4 901 LBD M 74 Not TL
5 621 AD F 78 High BP
6 490 LBD+AD M 74 High DN
7 197 LBD+AD F 83 Int TL
8 351 LBD+AD M 84 Int DN
9 075 LBD M 81 Low TL
10 376 LBD+AD F 75 Int DN
行の抽出
特定の文字を含む行を抽出
例えば、”Sex"の列が”M”の行を抽出する場合、subset(データ, 列名 == "文字"
という形で抽出する。
data_a <- subset(Data, Data$Sex == "M" )
data_a
output
ID Cohort Sex Age ADNC LBDSubtype
1 149 LBD M 83 Low BP
2 634 AD M 78 High DN
4 901 LBD M 74 Not TL
6 490 LBD+AD M 74 High DN
8 351 LBD+AD M 84 Int DN
9 075 LBD M 81 Low TL
特定の文字を含まない行を抽出
例えば、”Sex"の列が”M”の行以外を抽出する場合、subset(データ, 列名 != "文字"
という形で抽出する。
data_b <- subset(Data, Data$Sex != "M" )
data_b
output
ID Cohort Sex Age ADNC LBDSubtype
3 632 AD F 75 High BP
5 621 AD F 78 High BP
7 197 LBD+AD F 83 Int TL
10 376 LBD+AD F 75 Int DN
複数の条件で行を抽出
例えば、"Sex"が"M"で、”ADNC”が”Low”の行を抽出する場合、subset(データ, 列名1 == "条件1" & 列名2 == ”条件2”)という形で抽出する。
data_c <- subset(Data, Data$Sex == "M" & Data$ADNC == "Low" )
data_c
output
ID Cohort Sex Age ADNC LBDSubtype
1 149 LBD M 83 Low BP
9 075 LBD M 81 Low TL
列の抽出
列は、subset(データ, select = 列名)
とする。
特定の文字を含む行を抽出
例えば、”Sex"の列を抽出する場合、subset(Data, select = "Sex")
という形で抽出する。
data_a <- subset(Data, Data$Sex == "M" )
data_a
output
Sex
1 M
2 M
3 F
4 M
5 F
6 M
7 F
8 M
9 M
10 F
複数の列を抽出
例えば、"Sex""の列と、"Age"の列と、"ADNC”の列を抽出する場合、subset(データ, select = c("Sex", "Age", "ADNC"))
という形で抽出する。
data_b <- subset(Data, select=c("Sex","Age","ADNC"))
data_b
output
Sex Age ADNC
1 M 83 Low
2 M 78 High
3 F 75 High
4 M 74 Not
5 F 78 High
6 M 74 High
7 F 83 Int
8 M 84 Int
9 M 81 Low
10 F 75 Int
よく使用する演算子
subsetでよく使用する演算子を覚えてべし。
演算子等の覚え書き。 論理演算子 論理演算子 左片は右辺より大きい = 左片は右辺以上 == 等しい != 等しくない ! 否定 | 両辺のど …
Rで使用するメタ文字
行選択のところで触れたメタ文字。
Rでよく使うものを書き留めておく。
メタ文字 | 意味 |
. | 任意の一文字 |
* | 直前のパターンを、0 回以上繰り返す |
+ | 直前のパターンを、1 回以上繰り返す |
? | 直前のパターンを、0 回または 1 回だけ繰り返す |
{3,6} | 前出パターンが、3回以上6回以下繰り返す。 |
( ) | 複数の文字を一つのパターンとしてまとめる。 |
[ ] | [ ] に囲まれた文字列のうちいずれかの1文字を表す。 |
^ | 先頭。ただし、[ ] の中で使うと、「それ以外」を表す。 |
| | "A"|"B"で、「AまたはB」のように使う。 |
$ | ”データ$列名”という形でよく使う。 |
\ | メタ文字の直前に置いて、そのメタ文字をエスケープする。 |
色々使える正規表現の覚え書き。 正規表現(Regular Expression, Regex)とは 正規表現とは、「いくつかの文字列を一つの形式で表現するための表現方法」。 この形式を使えば、違う言葉etc.が入った文字 …