首页 > 解决方案 > 按多个条件过滤

问题描述

我有如下的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),但我不知道如何同时在两种条件下使用?

标签: rdplyr

解决方案


我不确定你是否想要 10 到 80 之间的值或低于 10 和高于 80 的值。如果你想要介于两者之间的值,你可以在filter. 如果你想要那些低于 10 和高于 80 的,你可以使用|“或”运算符:

library(tidyverse)

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

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

推荐阅读