我正在尝试比较一列中的文本,以确定文本中的相邻字母是否相似;为了使两个相邻的字母相同,需要多少次替换。
示例:简-简(1-AN / NA),玛丽-马尔特(0),克莱拉-克莱尔(2-CL / LC和ER / RE)
我尝试过stringdist方法,但是它们不能为我的问题提供解决方案。
由于我是R语言的新手,所以我无法在此处显示有效的代码:
substition <- function(text1,tex2){
if(text1 == text2){
return(TRUE)
}
if(nchar(text1) != nchar(text2)){
return(FALSE)
}
vec1 <- strsplit("text1",split="")[[1]]
vec2 <- strsplit("text2",split="")[[1]]
(can't go on)
。但要说明:
数据就是这样
df$NO df$names
1 JANE
2 MARY
3 CLERA
4 JNAE
5 LCREA
6 MART
,所需的输出是:
df$NO df$names df$substition
1 JANE 1
2 MARY 0
3 CLERA 2
4 JNAE 1
5 LCREA 2
6 MART 0
答案 0 :(得分:0)
您可以使用字符串之间的Levenshtein距离(https://en.wikipedia.org/wiki/Levenshtein_distance)。距离给出了将一个字符串转换为另一个字符串所需的最小插入,删除和替换次数。
用法
adist(
c("lazy", "lasso", "lassie"),
c("lazy", "lazier", "laser")
)
返回3x3的距离矩阵:
## [,1] [,2] [,3]
## [1,] 0 3 3
## [2,] 3 4 2
## [3,] 4 3 3