其他问题:
我有一堆子字符串(蓝色)覆盖了较大的字符串(红色): 我们可以像这样将其放入数据框:
sub.strings <- data.frame(
start = c(10, 20, 13, 70, 80),
end = c(50, 60, 85, 100, 95)
)
>sub.strings
start end
1 10 50
2 20 60
3 13 85 #<-- end first non overlapping part
4 70 100
5 80 95 #<-- end second non overlapping part
然后每个不重叠的部分(用虚线表示)我想获得找到的最长子串(紫色):
我尝试首先使用position = seq(min(sub.strings$start), max(sub.strings$end))
制作一个数据框,然后可以为每个子字符串添加列以指示所覆盖的位置,如下所示:
....
pos sub.string.1 sub.string.2
10 1 0
11 1 0
.. 1 1
50 1 1
.. 0 1
60 0 1
由于我有超过30.000个子字符串,每个子字符串分别覆盖400个以上的位置,因此即使仅数据帧也将变得非常大。然后,我仍然必须识别非卵泡组并选择最长的子串,所以我想应该有一个更简单的方法来做到这一点?