R seq函数产生错误的结果

时间:2016-03-14 17:37:06

标签: 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等时不确定如何找到答案,因为我无法在我的其他机器或r-fiddle上复制问题。即使重新启动电脑后问题仍然存在。

R版本3.1.3(2015-03-09)
平台:x86_64-w64-mingw32 / x64(64位)
运行于:Windows 7 x64(内部版本7601)Service Pack 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 个答案:

答案 0 :(得分:9)

您已将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