R: фильтр% в диапазоне% без фильтрации значений с десятичными знаками - PullRequest
1 голос
/ 01 апреля 2020

У меня есть набор данных e:

`structure(list(num = c(23L, 23L, 23L), code = structure(1:3, .Label = c("A", 
"B", "C"), class = "factor"), ranking = c(140.5, 140.5, 
2662), bottom = c(-0.0207357225475016, -0.0146710913954366, 
-0.019899240924872), previous = c(0.00312288516116536, 
0.00207118230618904, -0.00191931365721628), mean_of_all = c(-0.000222419352160109, 
-0.00107348087538642, -0.00202343390338765)), row.names = c(NA, 
-3L), class = "data.frame")`

код:

`winner_filtered <- e %>%
        group_by(code) %>%
        filter(ranking %in% (winner_lower:winner_upper))`

не фильтрует два значения с 140.5

Есть какие-нибудь предположения? Спасибо.

1 Ответ

2 голосов
/ 01 апреля 2020

Поскольку столбец 'rating' равен numeric, он может не совпадать со значениями, сгенерированными из последовательности из-за точности. Таким образом, filter может быть либо с <, > операторами, либо использовать удобную оболочку between

library(dplyr)
e %>%
    group_by(code) %>%
    filter(between(ranking, winner_lower, winner_upper))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...