我正在处理大量数据,主要是带有非英文字符的名称。我的目标是将这些名称与在美国收集的一些信息进行匹配。
即,我可能想将名称“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 距离匹配,但我宁愿进行完全匹配。