Я пытался создать последовательность нечетных значений с помощью оператора : (как в 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:10 совпадает с 1: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
Со страницы помощи:
Arguments
from : starting value of sequence.
to : (maximal) end value of the sequence.
...
Value to will be included if it differs from from by an integer up to a numeric fuzz of about 1e-7.
как показано, выражение неверно. Вам может понадобиться
seqПожалуйста, покажите ожидаемый результат