我需要将元素i-1,i-2,...,
与之前的所有元素if i < i-1, i-2, ...
进行比较,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)
返回1,否则返回0。
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
比较结果如下:
as.integer(cummin(data)==data)
我尝试用
制作它1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0
我得到了
{{1}}
第一个易于修复的元素。但是如何处理另一个10比1的位置。
答案 0 :(得分:4)
可能的方法:
v <- rank(data,ties='first')
out <- as.integer(cummin(v)==v)
# [1] 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
照顾第一个要素:
out[1] <- 0
答案 1 :(得分:2)
试试这个:
sapply(1 : length(data), FUN = function(i) all(data[i] < data[1 : (i - 1)]) * 1)
#[1] 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0