match() 可以包含在 R 中的范围吗?

can match() have a range included in R?

我正在尝试在 R 中使用 match() 来查找某个区间内的任何匹配值。例如:

v <- c(2.2, 2.4, 4.3, 1.3, 4.5, 6.8, 0.9)
match(2.4, v)

为我提供了 v 中 2.4 出现的所有位置,但是如果我想为所有可能的匹配项提供一个范围怎么办?例如 2.4 +/- 0.2?

非常感谢任何帮助,提前致谢!

在那种情况下,我会使用子集:

v[v>2.2 & v<2.6]

which(v>2.2 & v<2.6)

取决于您是想要值还是索引

这是另一个选项:

which(findInterval(v, c(-.2, .2) + 2.4) == 1)
[1] 1 2

findInterval(v, c(-.2, .2) + 2.4) 给出 1 1 2 0 2 2 0,其中 1 表示元素在区间内,0 表示它在左侧,2 表示在右侧。