识别 R 中的字符匹配百分比

cod*_*art 0 string r match

我正在计算 R 中字符串的匹配百分比。例如:

x <- "asdf"     
y <- "fdjk"     
Run Code Online (Sandbox Code Playgroud)

我希望返回 0.5(例如 2 个匹配,无论顺序如何)。任何想法都将不胜感激。

jos*_*ber 6

您可以使用以下命令将字符串拆分为特定字符strsplit

char.x <- strsplit(x, "")[[1]]
char.x
# [1] "a" "s" "d" "f"
char.y <- strsplit(y, "")[[1]]
char.y
# [1] "f" "d" "j" "k"
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用intersectlength来计算您的指标(确切的公式尚不清楚,因为您的帖子没有指定,例如,如何处理重复字符):

length(intersect(char.x, char.y)) /
  max(length(unique(char.x)), length(unique(char.y)))
# [1] 0.5
Run Code Online (Sandbox Code Playgroud)