查找R中向量中元素的元素和索引

时间:2016-12-01 05:26:21

标签: r

如何找到一个小于前一个元素的向量元素的第一个元素和索引,它小于它在R中的下一个元素?

例如,我们有一个这样的矢量:

     x=c(100.5, 99, 98.5,95.2,110, 116, 120,130)

我想在R中找到95.2和这个元素的索引。

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