:运算符的行为不一致

时间:2019-05-03 18:30:37

标签: r

当我遇到奇怪的行为时,我试图使用:运算符(如Octave)创建一个奇数序列。

我尝试了具有不同值的相同操作。

> 1:2:10
 [1]  1  2  3  4  5  6  7  8  9 10
Warning message:
In 1:2:10 : numerical expression has 2 elements: only the first used
> 1:0.2:10
 [1]  1  2  3  4  5  6  7  8  9 10
> 1:0.5:10
 [1]  1  2  3  4  5  6  7  8  9 10
> 1:0.9:10
 [1]  1  2  3  4  5  6  7  8  9 10
> 1:1.9:10
 [1]  1  2  3  4  5  6  7  8  9 10
> 1:2.9:10
 [1]  1  2  3  4  5  6  7  8  9 10
Warning message:
In 1:2.9:10 : numerical expression has 2 elements: only the first used
> 1:3.9:10
 [1]  1  2  3  4  5  6  7  8  9 10
Warning message:
In 1:3.9:10 : numerical expression has 3 elements: only the first used

我不明白区别。我想知道为什么有时我会收到警告,而其他时候却没有,以及警告消息中的区别。我知道我必须使用seq来获取所需的奇数值,但是这种不一致的行为使我感到困惑。

1 个答案:

答案 0 :(得分:6)

这样做的时候

1:1.9

结果是

# 1

,因此1:1.9:101:10相同。

但是当您打电话

1:2

你得到

# 1 2

因此1:2:10与呼叫相同

c(1, 2):10 # which gives 1:10 see warning
# [1]  1  2  3  4  5  6  7  8  9 10
#Warning message:
#In c(1, 2):10 : numerical expression has 2 elements: only the first used

从帮助页面:

  

参数

     

from:序列的起始值。

     

to:序列的(最大)最终值。

     

...

     如果

to to 值与 from 相差一个整数,直到大约1e-7的数字模糊,则将包括在内。