web-dev-qa-db-ja.com

R dplyr-複数の条件によるフィルター

私は以下のようなdata.frameを持っています

_ID  country age
1   X   83
2   X   15
3   Y   2
4   Y   12
5   X   2
6   Y   2
7   Y   18
8   X   85
_

10歳未満で同時に80歳以上の行をフィルタリングする必要があります。最も簡単な方法でそれを行うにはどうすればよいですか? 1つの条件に対してfilter(data.frame, age > 80)を使用できますが、2つの条件に対して同時にそれを行う方法がわかりませんか?

5
anba

以下はdplyrを使用してここでもあなたを助けるかもしれません

library(dplyr)
##Creating variable dat here which has values in it.
dat <- read.table(text = "ID country age
1   X   83
2   X   15
3   Y   2
4   Y   12
5   X   2
6   Y   2
7   Y   18
8   X   85",
                  header = TRUE)

dat %>%
  filter(age<10 | age>80)
5
RavinderSingh13

10から80までの値が必要か、10未満から80以上の値が必要かは質問からわかりません。これらの値が必要な場合は、filterに複数の引数を入れることができます。 10未満および80を超える値が必要な場合は、|を「または」演算子として使用できます。

library(tidyverse)

data %>%
  filter(age > 10,
         age < 80)

data %>%
  filter(age < 10 | age > 80)
3
Ben G
        dat <- read.table(text = "ID country age
                         1   X   83
                         2   X   15
                          3   Y   2
                          4   Y   12
                           5   X   2
                           6   Y   2
                           7   Y   18
                           8   X   85",
                           header = TRUE)

 x<-filter(dat, dat$age>80&dat$age<10) 
 x

ここで、OR(|)条件を使用するか、実際に何をしようとしているかに基づいてAND(&)条件を使用できます。

0
Megh