データフレームから、dplyr::filter()
を使って、特定の行を抽出する方法。
今回は、下記データ(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
dplyr::filter
filterはdplyrの中に入っている、かなり多用する関数の一つ。
使う前にdplyr
をインストールしておく。
install.packages(dplyr)
library(dplyr)
使い方は、dplyr::filter(データ名, 条件)
という形で使う。
特定の文字が入った行を抽出
例えば、Dataの中から、”ADNC” が ”Int” の行を抽出する場合。
data_a <- filter(Data, Data$ADNC=="Int" )
output
ID Cohort Sex Age ADNC LBDSubtype
7 197 LBD+AD F 83 Int TL
8 351 LBD+AD M 84 Int DN
10 376 LBD+AD F 75 Int DN
特定の文字が入っていない行を抽出
例えば、Dataの中から、”ADNC” が ”Int” 以外の行を抽出する場合。
data_a <- filter(Data, Data$ADNC !="Int" )
output
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 075 LBD M 81 Low TL
特定の条件の行を抽出
例えば、Dataの中から、”Age” が 80歳以上の行を抽出する場合。
data_c <- filter(Data, Data$Age> 80)
output
ID Cohort Sex Age ADNC LBDSubtype
1 149 LBD M 83 Low BP
2 197 LBD+AD F 83 Int TL
3 351 LBD+AD M 84 Int DN
4 075 LBD M 81 Low TL
使える演算子
”条件” を指定するための演算子を覚えておくべし。
演算子等の覚え書き。 論理演算子 論理演算子 左片は右辺より大きい = 左片は右辺以上 == 等しい != 等しくない ! 否定 | 両辺のど …
リンク
リンク
リンク
リンク