簡體   English   中英

如何使用替換距離比較兩個字符串以查找R中匹配的字符數?

[英]How can I compare two strings to find the number of characters that match in R, using substitution distance?

在R中,我有兩個字符向量a和b。

a <- c("abcdefg", "hijklmnop", "qrstuvwxyz")
b <- c("abXdeXg", "hiXklXnoX", "Xrstuvwxyz")

我想要一個函數來計算a的每個元素和b的相應元素之間的字符不匹配。 使用上面的例子,這樣的函數應該返回c(2,3,1) 沒有必要對齊字符串。 我需要逐個字符地比較每對字符串,並計算每對中的匹配和/或不匹配。 R中是否存在任何此類功能?

或者,以另一種方式提問,是否有一個函數給我兩個字符串之間的編輯距離 ,其中唯一允許的操作是替換(忽略插入或刪除)?

使用一些mapply樂趣:

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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM