当我遇到奇怪的行为时,我试图使用:运算符(像在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: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
从帮助页面:

关于r - :运算符的行为不一致,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55975380/

10-12 23:44