私は大量のデータを扱っていますが、ほとんどが英語以外の文字の名前です。私の目標は、これらの名前を米国で収集された情報と照合することです。
つまり、名前 'Sølvsten' (いくつかの名前のリストから) を 'Soelvsten' (アメリカのデータベースに保存されている名前) に一致させたいと思うかもしれません。これを行うために私が書いた関数を次に示します。明らかにぎこちなく、やや恣意的ですが、これらの外国語の文字を最も近い英語の隣人に変換する単純な R 関数があるかどうか疑問に思います。この変換を行う標準的な方法がない可能性があることは理解していますが、R 関数を使用してその変換を行うことができるかどうかに興味があります。
# a function to replace foreign characters
replaceforeignchars <- function(x)
{
require(gsubfn);
x <- gsub("š","s",x)
x <- gsub("œ","oe",x)
x <- gsub("ž","z",x)
x <- gsub("ß","ss",x)
x <- gsub("þ","y",x)
x <- gsub("à","a",x)
x <- gsub("á","a",x)
x <- gsub("â","a",x)
x <- gsub("ã","a",x)
x <- gsub("ä","a",x)
x <- gsub("å","a",x)
x <- gsub("æ","ae",x)
x <- gsub("ç","c",x)
x <- gsub("è","e",x)
x <- gsub("é","e",x)
x <- gsub("ê","e",x)
x <- gsub("ë","e",x)
x <- gsub("ì","i",x)
x <- gsub("í","i",x)
x <- gsub("î","i",x)
x <- gsub("ï","i",x)
x <- gsub("ð","d",x)
x <- gsub("ñ","n",x)
x <- gsub("ò","o",x)
x <- gsub("ó","o",x)
x <- gsub("ô","o",x)
x <- gsub("õ","o",x)
x <- gsub("ö","o",x)
x <- gsub("ø","oe",x)
x <- gsub("ù","u",x)
x <- gsub("ú","u",x)
x <- gsub("û","u",x)
x <- gsub("ü","u",x)
x <- gsub("ý","y",x)
x <- gsub("ÿ","y",x)
x <- gsub("ğ","g",x)
return(x)
}
注: Jaro Winkler Distance Matching などの名前一致アルゴリズムが存在することは知っていますが、正確な一致を行いたいと思います。