我需要将重叠的段聚合成一个范围内的所有连接段.
请注意,简单的foverlaps无法检测非重叠但已连接的段之间的连接,请参阅示例以进行说明.如果在我的情节中我的部分下雨,我正在寻找干燥的地面.
到目前为止,我通过迭代算法解决了这个问题,但我想知道这个问题是否有更优雅,更直接的前进方式.我肯定不是第一个面对它的人.
我正在考虑非平等滚动连接,但是要实现它
library(data.table)
(x <- data.table(start = c(41,43,43,47,47,48,51,52,54,55,57,59),
end = c(42,44,45,53,48,50,52,55,57,56,58,60)))
# start end
# 1: 41 42
# 2: 43 44
# 3: 43 45
# 4: 47 53
# 5: 47 48
# 6: 48 50
# 7: 51 52
# 8: 52 55
# 9: 54 57
# 10: 55 56
# 11: 57 58
# 12: 59 60
setorder(x, start)[, i := .I] # i is just a helper for plotting segments …Run Code Online (Sandbox Code Playgroud)