R:删除向量的最后一个元素

时间:2010-09-20 17:02:07

标签: r vector elements

如何删除动物园系列的最后100个元素?

我知道名字[-element]符号 但我无法完成减去一个完整的部分

6 个答案:

答案 0 :(得分:79)

我喜欢使用head,因为它更容易输入。其他方法可能执行得更快但是...但我很懒,而我的电脑却没有。 ; - )

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

答案 1 :(得分:10)

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

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

答案 2 :(得分:9)

实际上,有一种更快的方式:

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

答案 3 :(得分:7)

只需使用数字索引,即

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

你需要确保N更大100等

答案 4 :(得分:5)

如果你是一个班轮

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

答案 5 :(得分:3)

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

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