如何找到一个小于前一个元素的向量元素的第一个元素和索引,它小于它在R中的下一个元素?
例如,我们有一个这样的矢量: x=c(100.5, 99, 98.5,95.2,110, 116, 120,130)
我想在R中找到95.2和这个元素的索引。
答案 0 :(得分:3)
我认为这有效,但我很高兴被证明是错的:
x <- c(100.5, 99, 98.5, 95.2, 110, 116, 120, 130)
idx <- which(diff(sign(diff(x)))==2)+1
idx
#[1] 4
x[idx]
#[1] 95.2
它也不会将第一个值视为可能的结果(不确定这是否是您想要的):
x <- 1:5
idx <- which(diff(sign(diff(x)))==2)+1
idx
#numeric(0)
答案 1 :(得分:2)
我们可以尝试
i1 <- which(c(x[-1] > x[-length(x)] & x[-length(x)] < x[-1]), FALSE)[1]
x[i1]
#[1] 95.2