Skip to content
Prev 205884 / 398506 Next

string functions

Laetitia,

One approach:

lettermatch <- function(stringA, stringB) {
     sum(unique(unlist(strsplit(stringA, ""))) %in% 
unique(unlist(strsplit(stringB, ""))))
}

lettermatch("Hello World","Hello Peter")
yields 6, as the l is only singly counted.

This treats uppercase and lowercase as different letters and counts how 
many of the unique letters in stringA show up in stringB.

In another approach, letters are set to lowercase first. This I think 
gives you what you want:

lettermatch2 <- function(stringA, stringB) {
     tb <- merge(as.data.frame(table(strsplit(tolower(stringA), ""))), 
as.data.frame(table(strsplit(tolower(stringB), ""))), by="Var1")
     sum(apply(tb[-1], 1, min))
}

lettermatch("Hello World","Hello Peter")
yields 7.

Greg
On 1/9/10 1:51 PM, Laetitia Schmid wrote: