2

ベクトルがあるとします:

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) までのすべての要素は順序が正しくありません。それらの要素を削除したい。

これを行うベクトル化/ショートカットの方法は?

4

1 に答える 1

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
于 2012-08-21T15:15:29.917 に答える