2016-01-21 41 views
2

我需要與所有先前的元素i-1,i-2,...比較元件i,並且如果i > i-1, i-2, ...返回1,否則返回0。確定是否每個向量元素超過以前所有元件

data <- c(10.3,14.3,7.7,15.8,14.4,16.7,15.3,20.2,17.1,7.7,15.3,16.3,19.9,14.4,18.7,20.7) 

比較應該是以下的結果。

0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 
+9

除了第一個項目,這是'as.integer(cummax(data)== data)'......認爲有一個騙局。 – Frank

+1

@akrun基於OP的描述('v [i]> v [i-1],v [i-2],...),我猜第一個值是任意的或者是約定的問題,因爲對於'我= 1'的條件是不確定的。 – Frank

回答

6

這裏有一個標準的方法:

as.integer(cummax(data) == data) 

的第一個元素的值是1這裏,而不是OP的首選0,但很容易調整。

+0

發佈,因爲我找不到一個笨蛋。 – Frank

相關問題