На самом деле, есть гораздо более быстрый способ:
y <- x[1:(length(x)-1)]
Кодовое представление:
> microbenchmark( y <- head(x, -1), y <- x[-length(x)],y <- x[1:(length(x)-1)], times=10000)
Unit: microseconds
expr min lq mean median uq max
y <- head(x, -1) 71.399 76.4090 85.97572 78.9230 84.2775 2795.076
y <- x[-length(x)] 53.623 55.5585 65.15008 56.5680 61.1585 2523.141
y <- x[1:(length(x) - 1)] 25.722 28.2925 36.43029 29.1855 30.4010 2410.975