R dplyr - фильтр по нескольким условиям - PullRequest
0 голосов
/ 26 июня 2018

У меня есть 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), но я не знаю, как это сделать для двух условий одновременно?

Ответы [ 3 ]

0 голосов
/ 26 июня 2018

Следующее может помочь вам и здесь, используя 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)
0 голосов
/ 26 июня 2018
        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

Теперь вы можете использовать условие ИЛИ (|) или условие И (&) в зависимости от того, что вы на самом деле пытаетесь сделать.

0 голосов
/ 26 июня 2018

Я не уверен из вопроса, хотите ли вы значения между 10 и 80 или значениями ниже десяти и выше 80. Если вы хотите значения между ними, вы можете поместить несколько аргументов в filter. Если вы хотите те, кто ниже 10 и выше 80, вы можете использовать | в качестве оператора "или":

library(tidyverse)

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

data %>%
  filter(age < 10 | age > 80)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...