> I have to match names where names can be recorded with errors or additions. > Now I am searching for a string search function which returns always > the "closest" match. E.g. searching for "Washington" it should > return only Washington but not Washington, D.C. But it also could be > that the list contains only "Hamburg" but the record I am searching > for is "Hamburg OTM" and then we still want to find "Hamburg". Or > maybe the list contains "Hamburg" and "Hamberg" but we are searching > for "Hamburg" and thus only this should this one should be returned. > > agrep() returns all "close" matches but unfortunately does not > return the degree of closeness otherwise selection would be easy. > Is there such a function already implemented?
The Levenshtein distance is a common metric for determining how close two string are (in fact, agrep uses this). There's a function to calculate it on the R wiki. http://wiki.r-project.org/rwiki/doku.php?id=tips:data-strings:levenshtein You can use this to find the closest string. (If your set of cities is large, it may be quickest to use agrep to narrow the selection first, since the pure R implementation of levenshtein is likely to be slow.) Regards, Richie. Mathematical Sciences Unit HSL ------------------------------------------------------------------------ ATTENTION: This message contains privileged and confidential inform...{{dropped:20}} ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.