顔妻です。
今回はdplyrのfilter関数を使ったデータテーブルの絞り込み方法についてです。SQLのwhere句のように簡単に絞り込みをしたいシーンがあると思います。また、値の比較だけではなく、部分一致で絞り込みたいときもあると思います。正規表現を使う方法もありますが今回はExcel感覚で部分一致ができる方法を紹介します。
1 2 3 4 5 6 |
# テストデータ作成 tenki <- data.frame( date = c("2019-1-5","2019-1-6","2019-1-7","2019-1-8","2019-1-9","2019-1-10"), weather = c("kumori","hare","hare","ame","雪","くもり"), temperature = c(5,15,20,10,-5,8) ) |
数値を使って行の絞り込み
1 2 3 |
# 数値情報を使って行の絞り込み ### tenki %>% filter(temperature >= 10) |
文字を使った行の絞り込み①
1 2 3 |
# greplを使って行の絞り込み tenki %>% filter(grepl(pattern = "雪",x = weather)) |
文字を使った行の絞り込み② 部分一致
1 2 3 |
# 部分一致の挙動確認 tenki %>% filter(grepl(pattern = "晴れ",x = weather)) |
日付を使った行の絞り込み
1 2 3 4 5 6 7 |
## 日付型を使った絞り込み ### #日付型に変更 tenki$date <- as.Date(tenki$date) # 1/7を基準に絞り込み tenki %>% filter(date>= "2019-01-07") |
まとめ
いかがでしょうか?セグメントやカテゴリ内を詳しくみていくために、データを絞り込んで集計するシーンは多いと思います。同じようなことはSQLでもできますが一度吐き出したデータを改めてSQLに入れ直すのはやはり手間です。また、文字の一部を使って絞ることも頻繁にあると思います。そんなときに是非試してみてください。