LoginSignup
2
5

More than 3 years have passed since last update.

Rで複数の条件で行を選択・抽出する方法色々

Posted at

まず一つの条件で絞る

iris[iris$Species=="virginica",]

複数の条件を演算子で結ぶ

iris[iris$Species=="virginica" | iris$Species=="setosa",]

ベクトルで複数条件を指定する

iris[iris$Species==c("virginica","setosa"),]

dplyrのfilterを使う

慣れるとdplyrは使い方無限大

library(dplyr)
iris %>% filter(Species == "virginica" | Species == "setosa")

もちろん一つの条件でも絞れる。

以下だと25レコードづつしかとってきてくれない。
なぜだ。

iris %>% filter(Species == c("virginica","setosa"))

match関数を使う

いちいちベクトルや演算子に記述できないほど多い条件で絞りたいときはmatch関数を使ってNAにならなかった部分を指定すると便利
よく使ってるけど、なんか汚い・・・

iris[is.na(match(iris$Species, unique(iris$Species)[c(1,3)]))==FALSE,]

以上

他にも方法あったら教えてください

2
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5