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]