R dplyr-按多种条件过滤

时间:2018-06-26 11:35:07

标签: r filter 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岁以上的行。 如何以最简单的方式进行?对于一个条件,我可以使用filter(data.frame, age > 80),但是我不知道如何同时在两个条件下使用它?

4 个答案:

答案 0 :(得分:3)

下面的内容也可以使用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)

答案 1 :(得分:1)

从问题中我不确定您是否要在10到80之间的值或在10到80之间的值。如果要在10到80之间,可以在filter中放入多个参数。如果您希望10岁以下且80岁以上的用户可以将|用作“或”运算符:

library(tidyverse)

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

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

答案 2 :(得分:0)

        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(&)条件。

答案 3 :(得分:0)

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