Мы предполагаем из примера в вопросе, что мы хотим определить, является ли первая строка подстрокой второй строки или наоборот, и, если это так, сообщают соотношение их длин и сообщают 0 в противном случае.Также соотношение длин в примере составляет 100 * 4/5 = 80%, а не 90%, как показано в вопросе.
# test data
DF <- data.frame(string1 = c("FAYE", "FAYE2", "X"),
string2 = c("FAYE2", "FAYE", "FAYE"), stringsAsFactors = FALSE)
library(sqldf)
sqldf("select *,
max(100.0 * (instr(string2, string1) > 0) * length(string1) / length(string2),
100.0 * (instr(string1, string2) > 0) * length(string2) / length(string1))
percent from DF")
, давая:
string1 string2 percent
1 FAYE FAYE2 80
2 FAYE2 FAYE 80
3 X FAYE 0