Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用替换距离比较两个字符串以查找R中匹配的字符数?_R_String Comparison_Edit Distance_String Substitution - Fatal编程技术网

如何使用替换距离比较两个字符串以查找R中匹配的字符数?

如何使用替换距离比较两个字符串以查找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,

在R中,我有两个字符向量,a和b

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:<代码>替换-距离。这两个解决方案不是完全可互换的,尝试:<代码>答:而我只是要求一个字符一个字符的比较。严格来说,这只是替换距离,而不是完全编辑距离。谢谢你的更正。