我有如下的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
Run Code Online (Sandbox Code Playgroud)
我需要过滤年龄在10岁以下且同时在80岁以上的行。如何以最简单的方式进行过滤?对于一个条件,我可以使用,filter(data.frame, age > 80)但是我不知道如何同时在两个条件下使用它?
Ben*_*n G 23
我不确定这个问题是你想要 10 到 80 之间的值还是 10 和 80 以上的值。如果你想要介于filter. 如果你想要那些低于 10 和高于 80 你可以|用作“或”运算符:
library(tidyverse)
data %>%
filter(age > 10,
age < 80)
data %>%
filter(age < 10 | age > 80)
Run Code Online (Sandbox Code Playgroud)
小智 6
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
Run Code Online (Sandbox Code Playgroud)
现在,您可以根据您实际想要执行的操作使用 OR (|) 条件,也可以使用 AND (&) 条件。
以下内容也可以帮助您 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)
Run Code Online (Sandbox Code Playgroud)