如何使用替换距离比较两个字符串以查找R中匹配的字符数?
在R中,我有两个字符向量,a和b如何使用替换距离比较两个字符串以查找R中匹配的字符数?,r,string-comparison,edit-distance,string-substitution,R,String Comparison,Edit Distance,String Substitution,在R中,我有两个字符向量,a和b a <- c("abcdefg", "hijklmnop", "qrstuvwxyz") b <- c("abXdeXg", "hiXklXnoX", "Xrstuvwxyz") a使用一些mapplyfun: mapply(function(x,y) sum(x!=y),strsplit(a,""),strsplit(b,"")) #[1] 2 3 1 另一个选项是使用adist,它计算字符向量之间的近似字符串距离: mapply(adist,
a <- c("abcdefg", "hijklmnop", "qrstuvwxyz")
b <- c("abXdeXg", "hiXklXnoX", "Xrstuvwxyz")
a使用一些mapply
fun:
mapply(function(x,y) sum(x!=y),strsplit(a,""),strsplit(b,""))
#[1] 2 3 1
另一个选项是使用adist
,它计算字符向量之间的近似字符串距离:
mapply(adist,a,b)
abcdefg hijklmnop qrstuvwxyz
2 3 1
很抱歉,但这并不能满足我的要求。在我的例子中,它恰好给出了正确的答案,但是如果字符串中有重复的字母,它就不起作用了。例如,考虑<代码> a @ RythangpsP-好的-已经调整了答案来解释重复。为了清楚起见,我将重命名VARS和FN:<代码>替换-距离。这两个解决方案不是完全可互换的,尝试:<代码>答:而我只是要求一个字符一个字符的比较。严格来说,这只是替换距离,而不是完全编辑距离。谢谢你的更正。