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 表示在右侧。
我正在尝试在 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 表示在右侧。