« [R]ファイル名を示す文字列から拡張子を削除する | トップページ | [R]ベクトルの要素について集計する »

2024年1月19日 (金)

[R]正規表現を使用してtibbleから条件に一致する行を抜き出す

tidyverse(dplyr、stringr)パッケージに含まれるfilter関数とstr_detect関数を組み合わせて使う。以下の例では、簡潔な表示にするために表示の際にtibbleをデータフレームに変換している。

> library(tidyverse)
> no <- 1:5
> mei <- c("カナメ", "フレイア", "美雲", "マキナ", "レイナ")
> sei <- c("バッカニア", "ヴィオン", "ギンヌメール", "中島", "プラウラー")
> fname <- c("Kaname", "Freyja", "Mikumo", "Makina", "Reina")
> lname <- c("Buccaneer", "Wion", "Guynemer", "Nakajima", "Prowler")
> seiyu <- c("安野希世乃", "鈴木みのり", "小清水亜美", "西田望見", "東山奈央")
> tib <- tibble(no, mei, sei, fname, lname, seiyu)
> print(as.data.frame(tib))
no mei sei fname lname seiyu
1 1 カナメ バッカニア Kaname Buccaneer 安野希世乃
2 2 フレイア ヴィオン Freyja Wion 鈴木みのり
3 3 美雲 ギンヌメール Mikumo Guynemer 小清水亜美
4 4 マキナ 中島 Makina Nakajima 西田望見
5 5 レイナ プラウラー Reina Prowler 東山奈央
> tib %>% filter(str_detect(mei, "ナ")) %>% as.data.frame()
no mei sei fname lname seiyu
1 1 カナメ バッカニア Kaname Buccaneer 安野希世乃
2 4 マキナ 中島 Makina Nakajima 西田望見
3 5 レイナ プラウラー Reina Prowler 東山奈央
> tib %>% filter(str_detect(mei, "ナ$")) %>% as.data.frame()
no mei sei fname lname seiyu
1 4 マキナ 中島 Makina Nakajima 西田望見
2 5 レイナ プラウラー Reina Prowler 東山奈央
> tib %>% filter(str_detect(mei, "ナ") & str_detect(lname, "er$")) %>% as.data.frame()
no mei sei fname lname seiyu
1 1 カナメ バッカニア Kaname Buccaneer 安野希世乃
2 5 レイナ プラウラー Reina Prowler 東山奈央

« [R]ファイル名を示す文字列から拡張子を削除する | トップページ | [R]ベクトルの要素について集計する »

R(tidyverse)」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]ファイル名を示す文字列から拡張子を削除する | トップページ | [R]ベクトルの要素について集計する »

無料ブログはココログ

■■

■■■