检查Small-String中是否包含Small-String中的所有字母

时间:2018-01-28 10:44:45

标签: r string-matching textmatching

我正在尝试编写一些代码来确定小字符串中的字母是否包含在R中的较大字符串中。然后将按百分比返回准确度。

我在StackOverflow(check if all characters of one string exist in another string in r)上找到了以下内容,但所提供的代码计算了平均值作为唯一重叠的计数除以唯一字母的数量。 即它不允许重复的字母

s1 <- "ABBDEFGHIZ"
s2 <- "ABBDEFGHIJ"

compare <- function(s1, s2) {
  c1 <- unique(strsplit(s1, "")[[1]])
  c2 <- unique(strsplit(s2, "")[[1]])
  length(intersect(c1,c2))/length(c1)
}

compare(s1,s2)
[1] 0.8888889

理想情况下,上面的代码应该返回0.9的值,因为9/10的字母匹配而不是8/9。

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:-1)

类似的东西:

compare <- function(s1, s2) {
  c1 <- strsplit(s1, "")[[1]]
  c2 <- strsplit(s2, "")[[1]]
  x=sum(c1%in%c2)
  x/length(unique(c(c1,c2)))
}