R logo

データフレームから、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

使える演算子

”条件” を指定するための演算子を覚えておくべし。

にほんブログ村 子育てブログ ワーキングマザー育児へ