Я обнаружил, что целые и двойные значения ведут себя по-разному в матрице, и неправильный ответ возвращается только для двойных типов данных.
#Test
m <- matrix(1:12,4,3)
which(!m[1,] %in% 1:5)
which(!m[1,] %in% 1:5)
[1] 3
Однако, когда я изменил значения в двойном / числовом,
m <- matrix(c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6), 4,3)
which(!m[1,] %in% 0.10:0.35)
[,1] [,2] [,3]
[1,] 0.1 0.5 0.3
[2,] 0.2 0.6 0.4
[3,] 0.3 0.1 0.5
[4,] 0.4 0.2 0.6
which(!m[1,] %in% 0.10:0.35)
[1] 2 3
только 2 должны быть в ответе, потому что 1,3 находятся в диапазоне от 0,10 до 0,35, поэтому они отличаются в вычислениях с использованием целых и числовых значений. Спасибо!