使用长度和序列之间向量索​​引的差异

Differences in indexing of vector between using length and a sequence

我正在设置矢量数据,想提取其中的一部分。

我尝试了两种方法,如下图。我认为这些应该有相同的输出,但结果不同。为什么?

data1<- c( 1, 2, 3, 4, 5 )

data1[ length( data1 ) - 2 : length( data1 ) ]    
# ; [1] 3 2 1

data1[ 3 : 5 ]    
# ; 3 4 5

因为运算符优先级(检查?Syntax - 一元-+在序列运算符:之上),用()包裹起来求值作为一个块

data1[(length(data1)-2):length(data1)]
#[1] 3 4 5

length( data1 ) - 2 : length( data1 )
#[1] 3 2 1 0

(length( data1 ) - 2) : length( data1 )
#[1] 3 4 5