rstringanagram

Check whether two strings are anagrams


What is the most straightforward way to check whether two strings are anagrams? i.e. they share the same letters as well as number of occurrences of each these letters (and possibly other characters).

Something like this:

s1 = "elbow"
s2 = "below"

is_anagram(s1, s2)
# [1] TRUE

Solution

  • One way to do it is:

    s1 = "elbow"
    s2 = "below"
    
    is_anagram <- function(s1, s2){
      s1_sorted <- sort(strsplit(s1, "")[[1]])
      s2_sorted <- sort(strsplit(s2, "")[[1]])
      identical(s1_sorted, s2_sorted)
    }
    
    #> is_anagram(s1, s2)
    #> [1] TRUE