gpt4 book ai didi

r - 使用 data.table 查找重叠间隔组

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

我有多个间隔,需要找到哪些会形成一个连续的组。

在这个 MWE 中,我有 Interval.id、Interval.start 和 Interval.end。我想计算 Wanted.column。

DT <- data.table(Interval.id=c(1L, 2L, 3L, 4L, 5L, 6L),
Interval.start=c(2.0, 3.0, 4.0, 4.6, 4.7, 5.5),
Interval.end=c(4.5, 3.5, 4.8, 5.0, 4.9, 8.0),
Wanted.column=c(1L, 1L, 1L, 1L, 1L, 2L))

我想 foverlaps是这里的 friend ,但我不知道怎么做。

如何计算 Wanted.column?

最佳答案

DT[ , g := cumsum(
cummax(shift(Interval.end, fill = Interval.end[1])) < Interval.start) + 1]

# Interval.id Interval.start Interval.end Wanted.column g
# 1: 1 2.0 4.5 1 1
# 2: 2 3.0 3.5 1 1
# 3: 3 4.0 4.8 1 1
# 4: 4 4.6 5.0 1 1
# 5: 5 4.7 4.9 1 1
# 6: 6 5.5 8.0 2 2

归功于高度相关的答案:
Collapse rows with overlapping ranges , How to flatten / merge overlapping time periods

关于r - 使用 data.table 查找重叠间隔组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58152986/

25 4 0