R seq函数产生错误的结果

Tri*_*mus 3 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
Run Code Online (Sandbox Code Playgroud)

稍微更改命令会返回预期结果

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
Run Code Online (Sandbox Code Playgroud)

一旦我越过"1"阈值,就会出现错误的结果,例如当我从= 2.95到= 3.1等时,我不知道如何找到答案,因为我无法在我的其他机器上复制问题或在小提琴上.即使重新启动电脑后问题仍然存在.

R版本3.1.3(2015-03-09)
平台:x86_64-w64-mingw32/x64(64位)
在以下位置运行:Windows 7 x64(内部版本7601)Service Pack 1

locale:
[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

nic*_*ola 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
Run Code Online (Sandbox Code Playgroud)

  • 那里很好. (3认同)