R:查找最长的非重叠子字符串

时间:2019-04-17 11:43:48

标签: r string text overlap

其他问题

我有一堆子字符串(蓝色)覆盖了较大的字符串(红色): enter image description here 我们可以像这样将其放入数据框:

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

然后每个不重叠的部分(用虚线表示)我想获得找到的最长子串(紫色): enter image description here

我尝试首先使用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个以上的位置,因此即使仅数据帧也将变得非常大。然后,我仍然必须识别非卵泡组并选择最长的子串,所以我想应该有一个更简单的方法来做到这一点?

0 个答案:

没有答案