Learn R Programming

stringdist (version 0.9.6.3)

stringdist-package: A package for string distance calculation and approximate string matching.

Description

The stringdist package offers fast and platform-independent string metrics. Its main purpose is to compute various string distances and to do approximate text matching between character vectors. As of version 0.9.3, it is also possible to compute distances between sequences represented by integer vectors.

Arguments

Acknowledgements

  • The code for the full Damerau-Levenshtein distance was adapted from Nick Logan's public github repository.

  • C code for converting UTF-8 to integer was copied from the R core for performance reasons.

  • The code for soundex conversion and string similarity was kindly contributed by Jan van der Laan.

Citation

If you would like to cite this package, please cite the R Journal Paper:

  • M.P.J. van der Loo (2014). The stringdist package for approximate string matching. R Journal 6(1) pp 111-122

Or use citation('stringdist') to get a bibtex item.

Details

A typical use is to match strings that are not precisely the same. For example

amatch(c("hello","g'day"),c("hi","hallo","ola"),maxDist=2)

returns c(2,NA) since "hello" matches closest with "hallo", and within the maximum (optimal string alignment) distance. The second element, "g'day", matches closest with "ola" but since the distance equals 4, no match is reported.

A second typical use is to compute string distances. For example

stringdist(c("g'day"),c("hi","hallo","ola"))

Returns c(5,5,4) since these are the distances between "g'day" and respectively "hi", "hallo", and "ola".

A third typical use would be to compute a dist object. The command

stringdistmatrix(c("foo","bar","boo","baz"))

returns an object of class dist that can be used by clustering algorithms such as stats::hclust.

A fourth use is to compute string distances between general sequences, represented as integer vectors (which must be stored in a list):

seq_dist( list(c(1L,1L,2L)), list(c(1L,2L,1L),c(2L,3L,1L,2L)) )

The above code yields the vector c(1,2) (the first shorter first argument is recycled over the longer second argument)

Besides documentation for each function, the main topics documented are: