【发布时间】:2021-07-27 14:50:56
【问题描述】:
我有这个数据框:
example_data <- data.frame(Start = c(1,10,25, 40, 2, 11, 27, 50),
End = c(9, 26, 30, 41, 14, 16, 40, 55),
Group = c('A','A','A','A','B','B','B','B'))
| Start | End | Group |
|---|---|---|
| 1 | 9 | A |
| 10 | 26 | A |
| 25 | 30 | A |
| 40 | 41 | A |
| 2 | 14 | B |
| 11 | 16 | B |
| 27 | 40 | B |
| 50 | 55 | B |
考虑到某些行相互重叠,我想知道每个组的长度或覆盖范围。例如,第二行从 26 开始,第三行从 25 开始。所以有一个单元的重叠。
这将是我想要达到的结果:
| Group | Coverage |
|---|---|
| A | 29 |
| B | 32 |
我试过这个,只有在没有重叠的情况下才有效。
example_data %>%
group_by(Group) %>%
summarise(coverage = sum(End - Start))
但我不知道如何处理重叠段。有什么线索吗?
【问题讨论】:
-
可以有多个重叠,例如2-10、3-11 和 4-12?另外,除了整数,还能有其他值吗?
-
是的,我的真实数据集中可能有多个重叠。不,只有整数。
标签: r