Я столкнулся с очень странной проблемой, которую я не знаю, как решить, и никогда не видел. Я могу подмножество data.frame
для некоторых, но не для других чисел c значений.
Вот данные, которые я использую:
library(dplyr)
ws <- seq(0, 1, by=.1)
kombos <- expand.grid(weightjaw2 = ws,
weightjaw3 = ws) %>% as.data.frame
kombos$kombi <- 1:nrow(kombos)
kombos$weightjaw2 <- as.numeric(kombos$weightjaw2)
kombos$weightjaw3 <- as.numeric(kombos$weightjaw3)
class(kombos$weightjaw2)
[1] "numeric"
Теперь мне нужно поднастроить это data.frame
. Это хорошо работает, скажем, например, значение 0.1
.
kombos %>% filter(weightjaw2==0.1)
weightjaw2 weightjaw3 kombi
1 0.1 0.0 2
2 0.1 0.1 13
3 0.1 0.2 24
4 0.1 0.3 35
5 0.1 0.4 46
6 0.1 0.5 57
7 0.1 0.6 68
8 0.1 0.7 79
9 0.1 0.8 90
10 0.1 0.9 101
11 0.1 1.0 112
Как ни странно, это не работает для значений 0.3
, 0.6
и 0.7
.
kombos %>% filter(weightjaw2==0.3)
[1] weightjaw2 weightjaw3 kombi
<0 rows> (or 0-length row.names)
То же самое относится к subset(kombos, weightjaw2==0.3)
. Почему это так и как я могу это решить?
РЕДАКТИРОВАТЬ
Я решил это с помощью dyplyr::near()
:
kombos %>% filter(near(weightjaw2, 0.3))