如何从向量中删除一个最大值和一个最小值?

时间:2014-06-24 23:21:41

标签: r

我想从矢量中删除一个最大值和一个最小值。

> x<-c( 1,1,1,3,8,9,9)

我希望得到1,1,3,8,9作为我的结果。

> y<-c(max(x),min(x))
> y

[1] 9 1

  

setdiff(X,Y)
     [1] 3 8

setdiff无法正常工作。我怎么能得到它?

3 个答案:

答案 0 :(得分:5)

另一种可能性:

x[-c(which.min(x),which.max(x))]

which.min()which.max()分别标识第一次出现的最小值或最大值。

答案 1 :(得分:3)

有大量的方式......

#  Assuming your data is already sorted as in OP,
#  here's a relatively inefficient way to do it...
head(tail(x,-1),-1)
#[1] 1 1 3 8 9

答案 2 :(得分:2)

> x[order(x)][2:(length(x)-1)]
[1] 1 1 3 8 9