2016-01-21 15 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

相关问题