gpt4 book ai didi

r - 比较并找到R中的重叠范围

转载 作者:行者123 更新时间:2023-12-04 12:08:09 25 4
gpt4 key购买 nike

我有两个表,每个表都包含数字范围。一张 table 是另一张 table 的分割。我想在第一个表中创建二进制列,显示它们在哪个范围内重叠。

例如:

df1:
start1 end1
1 6
6 8
9 12
13 15
15 19
19 20

df2:
start2 end2
2 4
9 11
14 18

结果:结果是第一个带有显示重叠是否存在的列的表。
  start1   end1   overlap
1 6 1
6 8 0
9 12 1
13 15 1
15 19 1
19 20 0

谢谢。

最佳答案

你也可以试试foverlaps来自 data.table

library(data.table)
setkey(setDT(df1), start1, end1)
setkey(setDT(df2), start2, end2)
df1[,overlap:=foverlaps(df1, df2, which=TRUE)[, !is.na(yid),]+0]
df1
# start1 end1 overlap
#1: 1 6 1
#2: 6 8 0
#3: 9 12 1
#4: 13 15 1
#5: 15 19 1
#6: 19 20 0

关于r - 比较并找到R中的重叠范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26905601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com