Ваша проблема связана с приоритетом оператора.:
имеет более высокий приоритет, чем -
.
a[1:length(a)-2]
означает a[(1:length(a))-2]
вместо того, что вы предполагали a[1:(length(a)-2)]
В вашем случае a
имеет длину 3,в этом случае 1:length(a)
- это вектор 1 2 3
, а 1:length(a) - 2
- это вектор -1 0 1
.
Кроме того, даже если a[1:length(a)-1]
сработал, он не сработал так, как вы думаете.Вы вычислили a[0:2]
(с первым индексом 0
просто игнорируемым), а не просто a[1:2]
.