Функция R seq дает неправильные результаты
Кажется, что одна из моих машин выдаёт неправильные результаты для функции seq, в то время как другая машина или онлайн-интерпретатор r-fiddle ( http://www.r-fiddle.org/) дают ожидаемые результаты. На рассматриваемой машине происходит следующее:
seq(from = 1, to = 1.1, by = 0.01)
[1] 1.0 1.0 1.0 1.0 1.0 1.0 1.1 1.1 1.1 1.1 1.1
Небольшое изменение команды возвращает ожидаемый результат
seq(from = 0.99, to = 1.1, by = 0.01)
[1] 0.99 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10
Как только я пересекаю порог "1", происходит неправильный результат, например, когда я делаю от = 2,95 до = 3,1 и т. Д. Не уверен, как найти ответ, так как я не смог воспроизвести проблему на другой машине или на р-скрипке. Проблема сохраняется даже после перезагрузки компьютера.
Версия 3.1.3 (2015-03-09)
Платформа: x86_64-w64-mingw32/x64 (64-разрядная версия)
Работает под: Windows 7 x64 (сборка 7601) с пакетом обновления 1
локали:
[1] LC_COLLATE = German_Germany.1252 LC_CTYPE = German_Germany.1252
[3] LC_MONETARY = German_Germany.1252 LC_NUMERIC = C
[5] LC_TIME = German_Germany.1252
1 ответ
Вы установили digits
опция слишком низкая:
options(digits=2)
seq(from = 1, to = 1.1, by = 0.01)
#[1] 1.0 1.0 1.0 1.0 1.0 1.1 1.1 1.1 1.1 1.1 1.1
options(digits=7)
seq(from = 1, to = 1.1, by = 0.01)
#[1] 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10