Вот некоторый основной код и его вывод. Я действительно не могу сказать ничего, кроме логического теста для последовательности, содержащей 1.2, которая дает неточный результат. Это работает для многих других значений.
# Incorrect
> seq(0.5, 1.5, by=0.05) == 1.2
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# Correct
> seq(0.5, 1.5, by=0.05) == 1.15
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[13] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# Correct
> seq(0.5, 1.5, by=0.05) == 1.25
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[13] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
# Correct
> seq(0.5, 1.5, by=0.05) == 1.3
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[13] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
Я попытался протестировать все значения, используя следующее, которое не воспроизводит ошибку:
> sapply(seq(0.5, 1.5, by=0.05), function(x){sum(seq(0.5, 1.5, by=0.05) == x)})
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Я использую версию R 2.13.2 (2011-09-30), платформа: x86_64-pc-linux-gnu (64-разрядная версия).