【发布时间】:2016-02-13 14:36:29
【问题描述】:
是否有(容易)识别两个字符串共享的共同模式的可能性? 这里有一个小例子来说明我的意思:
我有两个包含字符串的变量。两者都包括相同的模式(“ABC”)和一些“噪音”。
a <- "xxxxxxxxxxxABCxxxxxxxxxxxx"
b <- "yyyyyyyyyyyyyyyyyyyyyyyABC"
假设我不知道常见模式,我希望 R 找出两个字符串都包含“ABC”。我怎样才能做到这一点?
*编辑
第一个例子可能有点简单。这是我真实数据中的一个例子。
a <- "DUISBURG-HAMBORNS"
b <- "DUISBURG (-31.7.29)S"
两个字符串都包含我希望函数识别的“DUISBURG”。
*编辑
我采用了 cmets 中发布的链接中提出的解决方案。但我仍然没有我想要的。
library(qualV)
LCS(strsplit(a[1], '')[[1]],strsplit(b[1], '')[[1]])$LCS
[1] "D" "U" "I" "S" "B" "U" "R" "G" "-" " " " " "S"
如果函数在寻找两个向量的最长公共子序列,为什么在"D" "U" "I" "S" "B" "U" "R" "G"之后没有停止? .
【问题讨论】:
-
我们需要更多地了解可能的常见模式和这种“噪音”。例如,“abc”和“cda”是否给出了 2 个常见的模式“a”和“c”?
-
好的,有一点。我想要至少包含 3 或 4 个元素的模式。