0

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

我在 StackOverflow 上找到了以下内容(检查一个字符串的所有字符是否存在于 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。

任何意见,将不胜感激。

4

1 回答 1

-1

像这样的东西:

compare <- function(s1, s2) {
  c1 <- strsplit(s1, "")[[1]]
  c2 <- strsplit(s2, "")[[1]]
  x=sum(c1%in%c2)
  x/length(unique(c(c1,c2)))
}
于 2018-01-28T10:58:15.897 回答