我有如下所示的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)
,但是我不知道如何同时在两个条件下使用它?
答案 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)