R:向量的哪些组件出故障

时间:2012-08-21 15:08:55

标签: r

说我有矢量:

x <- c(11,6,5,3,2,1,25,10,16,12,22,24,19,14,18,32,17,15,8,7,
       33,4,27,9,29,13,30,23,20,31,26,21,28)
x
[1] 11  6  5  3  2  1 25 10 16 12 22 24 19 14 18 32 17 15  8  7 33  4 27  9 29 13 30 23 20
[30] 31 26 21 28

我想确定哪些元素不是提升的。因此,例如,元素2到5(值6,5,3,2,1)是乱序的,因为它们小于元素1(11)。然后元素6是有序的,因为它大于11,然后直到元素16(32)的所有元素都是乱序的。我想删除这些元素。

执行此操作的矢量化/快捷方式?

1 个答案:

答案 0 :(得分:7)

创建一些数据:

set.seed(1)
x <- sample(100, 30)
x
[1] 27 37 57 89 20 86 97 62 58  6 19 16 61 34 67 43 88 83 32 63 75 17 51 10 21 29  1 28 81 25

仅选择那些大于或等于累积最大值的元素:

x[x >= cummax(x)]
[1] 27 37 57 89 97