Вы были на правильном пути с filter()
. Причина, по которой вы не получите никаких печатных наблюдений с фильтрацией для lifeExp == 41
, заключается в том, что нет наблюдений, которые в точности равны 41:
library(gapminder)
library(dplyr)
data(gapminder)
filter(gapminder, country == "Afghanistan" & lifeExp == 41)
#> # A tibble: 0 x 6
#> # ... with 6 variables: country <fct>, continent <fct>, year <int>,
#> # lifeExp <dbl>, pop <int>, gdpPercap <dbl>
. Необходимо либо указать диапазон, либо округлить значения передфильтрация:
filter(gapminder, country == "Afghanistan" & lifeExp > 39 & lifeExp < 42)
#> # A tibble: 4 x 6
#> country continent year lifeExp pop gdpPercap
#> <fct> <fct> <int> <dbl> <int> <dbl>
#> 1 Afghanistan Asia 1982 39.9 12881816 978.
#> 2 Afghanistan Asia 1987 40.8 13867957 852.
#> 3 Afghanistan Asia 1992 41.7 16317921 649.
#> 4 Afghanistan Asia 1997 41.8 22227415 635.
gapminder %>%
mutate(lifeExp = round(lifeExp)) %>%
filter(country == "Afghanistan" & lifeExp == 41)
#> # A tibble: 1 x 6
#> country continent year lifeExp pop gdpPercap
#> <fct> <fct> <int> <dbl> <int> <dbl>
#> 1 Afghanistan Asia 1987 41 13867957 852.