Проверьте, содержатся ли все буквы в Small-String в Large-String

Я пытаюсь написать некоторый код, чтобы определить, содержатся ли буквы в маленькой строке в большей строке в R. Точность будет возвращаться в процентах.

Я нашел следующее в Stackru ( проверьте, все ли символы одной строки существуют в другой строке в 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 ответ

Что -то вроде этого:

compare <- function(s1, s2) {
  c1 <- strsplit(s1, "")[[1]]
  c2 <- strsplit(s2, "")[[1]]
  x=sum(c1%in%c2)
  x/length(unique(c(c1,c2)))
}
Другие вопросы по тегам