Parênteses tornam um vetor diferente. Como exatamente a expressão vetorial é avaliada?

Eu tenho um quadro de dados da seguinte maneira:

planets               type diameter rotation rings
Mercury Terrestrial planet    0.382    58.64 FALSE 
Venus   Terrestrial planet    0.949  -243.02 FALSE 
Earth   Terrestrial planet    1.000     1.00 FALSE 
Mars    Terrestrial planet    0.532     1.03 FALSE
Jupiter          Gas giant   11.209     0.41 TRUE
Saturn          Gas giant     9.449     0.43 TRUE
Uranus          Gas giant     4.007    -0.72 TRUE
Neptune          Gas giant    3.883     0.67  TRUE

Eu queria selecionar as últimas 3 linhas:

planets_df[nrow(planets_df)-3:nrow(planets_df),]

No entanto, tenho algo que não esperava:

planets          type                  diameter rotation rings
Jupiter          Gas giant            11.209     0.41  TRUE
Mars             Terrestrial planet    0.532     1.03 FALSE
Earth            Terrestrial planet    1.000     1.00 FALSE
Venus            Terrestrial planet    0.949  -243.02 FALSE
Mercury          Terrestrial planet    0.382    58.64 FALSE

Com o método de tentativa e erro, aprendi que

> (nrow(planets_df)-3):nrow(planets_df)
[1] 5 6 7 8

e

> nrow(planets_df)-3:nrow(planets_df)
[1] 5 4 3 2 1 0

Como exatamente R avalia: declaração (com referência a colchetes)?

questionAnswers(3)

yourAnswerToTheQuestion