см. ?tail
и ?head
для некоторых удобных функций:
> x <- 1:10
> tail(x,5)
[1] 6 7 8 9 10
Ради аргумента: все, кроме последних пяти элементов, будет:
> head(x,n=-5)
[1] 1 2 3 4 5
As @Мартин Морган говорит в комментариях, что есть две другие возможности, которые быстрее, чем хвостовое решение, на случай, если вам придется выполнить это миллион раз на векторе 100 миллионов значений.Для наглядности я бы пошел с хвостом.
test elapsed relative
tail(x, 5) 38.70 5.724852
x[length(x) - (4:0)] 6.76 1.000000
x[seq.int(to = length(x), length.out = 5)] 7.53 1.113905
код бенчмаркинга:
require(rbenchmark)
x <- 1:1e8
do.call(
benchmark,
c(list(
expression(tail(x,5)),
expression(x[seq.int(to=length(x), length.out=5)]),
expression(x[length(x)-(4:0)])
), replications=1e6)
)