使用 R 在另一个区间内找到一个区间

Find an interval inside an other interval using R

我正在尝试使用 R 查找一个区间列表是否在另一个区间列表内。例如:

列表 1

     start         end
     100           500
     700           800

列表 2

    start          end
    200            300
    800            850

预期输出为

     TRUE
     FALSE

所以我尝试了这样的事情:

        for (i in nrow(list1)){
          for (j in nrow(list2)){
            if ((list1[i, 1] <= list2[i,1]) & (list1[i, 2] >= list2[i,2])){
              print(list1[i, 1]) 
              }
            }
          }

但是没有用。此外,这两个列表的长度不同,可能是第二个列表的多个间隔在第一个列表的单个间隔中。

有什么想法吗?

提前致谢

您可以使用 any 查看 list2 中的行是否在 list1

中定义的任何范围内
sapply(1:NROW(list2), function(i)
    any(list2$start[i] > list1$start & list2$end[i] < list1$end))
#[1]  TRUE FALSE

数据

list1 = structure(list(start = c(100, 700), end = c(500, 800)), .Names = c("start", 
"end"), row.names = c(NA, -2L), class = "data.frame")

list2 = structure(list(start = c(200, 800), end = c(300, 850)), .Names = c("start", 
"end"), row.names = c(NA, -2L), class = "data.frame")