在R中2个表之间减去范围

时间:2020-05-07 05:26:05

标签: r

如果我有

df1:

  start end
     1   4
     5   7
     8  12
    20  22 

df2:

  start end
     3   6
    10  15

如何获取包含R中df2中没有的df1间隔的表?

例如,df1的第一行是(1..4),由于它与df2中的间隔(3..6)重叠,因此我想要(1..4) - (3..6),即(1..2)(即不在df2中的df1的第一行)。

最后,我想要这样的结果:

  start end
     1   2
     7   7
     8   9
    20  22

1 个答案:

答案 0 :(得分:3)

我们可以在df2的{​​{1}}和start之间创建一个序列,并将其存储在end中。然后,对于vals中的每一行,我们可以仅包含df1中不存在的那些值中的range

vals