R:删除vector的最后一个元素

我怎样才能删除动物园系列的最后100个元素?

我知道这个名字[-element]符号,但是我不能完成这个工作来减less一个完整的部分

我喜欢使用head ,因为它更容易打字。 其他方法可能执行速度虽然…但我很懒,我的电脑不是。 😉

 x <- head(x,-100) > head(1:102,-100) [1] 1 2 

我敢打赌, length<-是修剪vector最有效的方法:

 > x <- 1:10^5 > length(x) [1] 100000 > length(x) <- 3 > x [1] 1 2 3 

只要使用数字指标,即

  N <- nrow(X) X <- X[1:(N-100-1),] 

你需要确保N大于100等

其实,有一个更快的方法:

 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 

如果你是一个class轮

 x = x[1:(length(x) -101)] 

为了完整起见,另一个单线:

 x <- lag(x, 100)[-1:-100]