从数据框开始和结束点查找间隔

Find interval from data frame start and end points

我有数据框(DF):

Start  End  Result
2      300  FL91
5      250  FL12
550    750  FL18
720    900  FL41

我想找到 "Start" < 81 > "End" 之间的所有 "Results" (所以,我想找到所有 "Results" 之间的区间"开始和 "End" 点不到 81。 我试过了:

y <- 81
findInterval(y, DF$Start, DF$End)

但我得到了这样的错误:'vec' 必须按非递减方式排序并且不包含 NA。 我确信我的数据框不包含 NA 并且没有按降序排序。 我也尝试使用类似主题的建议,但无法找到解决方案。

Extracting data from data frame

Interval search on a data frame

那么,我该怎么办?

您可以使用现成的函数或创建自己的函数:

findInt <- function(value, start, end) {
  start < value & end > value
}

indx <- findInt(81, DF$Start, DF$End)
DF$Result[indx]
#[1] "FL91" "FL12"

可能是这样的

[1]  TRUE  TRUE FALSE FALSE
> df[df[,1] <= 81 & 81 <=  df[,2], 3]
[1] FL91 FL12