R: Как получить образец из фрейма данных, используя несколько условий - PullRequest
0 голосов
/ 02 марта 2020

У меня обширный набор данных, и я пытаюсь получить образец, удовлетворяющий нескольким условиям.

Я хочу, чтобы моя выборка показывала только те наблюдения, где переменная (тип) - это a, b или c, дополнительно показывающая только наблюдения, где переменная (время) находится в период между 2010 и 2017 годами (набор данных имеет наблюдения за 2010 год). до 2018 года).

Я пробовал nameDataset == "a", "b", "c" & ... Но, честно говоря, не уверен, как решить эту проблему.

1 Ответ

0 голосов
/ 02 марта 2020

Вот способ фильтрации с использованием пакета dplyr (поскольку данные не предоставлены, я использовал набор данных iris):

suppressPackageStartupMessages( library(dplyr) )
iris <- iris %>% 
        as_tibble() %>% 
        mutate(Species = as.character(Species))
iris %>% 
        filter(Species %in% c("setosa", "virginica") &
                       Sepal.Length %>% between(4.5, 5)
               )
#> # A tibble: 25 x 5
#>    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#>           <dbl>       <dbl>        <dbl>       <dbl> <chr>  
#>  1          4.9         3            1.4         0.2 setosa 
#>  2          4.7         3.2          1.3         0.2 setosa 
#>  3          4.6         3.1          1.5         0.2 setosa 
#>  4          5           3.6          1.4         0.2 setosa 
#>  5          4.6         3.4          1.4         0.3 setosa 
#>  6          5           3.4          1.5         0.2 setosa 
#>  7          4.9         3.1          1.5         0.1 setosa 
#>  8          4.8         3.4          1.6         0.2 setosa 
#>  9          4.8         3            1.4         0.1 setosa 
#> 10          4.6         3.6          1           0.2 setosa 
#> # ... with 15 more rows

Вы можете сохранить результат в объекте, когда Вы удовлетворены (должно работать и с датами).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...