我想从矢量中删除一个最大值和一个最小值。
> 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
无法正常工作。我怎么能得到它?
答案 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