在R中将特殊字母转换为英文字母

时间:2015-11-25 07:48:44

标签: r

有没有办法将特殊字母在文本中转换为R中的英文字母?例如:

stringdist('oversættelse','oversaettelse')
[1] 2
grepl('oversættelse','oversaettelse')
FALSE

编辑:我需要这个转换的原因是R不能看到这两个词是相同的:

def bouncy(n):
    return round(sum(list(i) not in (sorted(i), sorted(i, reverse=True)) for i in map(str, range(1, n+1)))/n*100)

有些人只用英文字符书写,有些人不用。为了比较一些文本,我需要以“相同的格式”使用它们。

2 个答案:

答案 0 :(得分:5)

我最近遇到了一个非常类似的问题,并指出问题Unicode normalization (form C) in R : convert all characters with accents into their one-unicode-character form?

基本上,要点是许多这个特殊字符存在多个unicode表示 - 这将混淆文本比较。建议的解决方案是使用stringi包函数stri_trans_nfc - 它还有一个支持音译的函数stri_trans_general,这可能正是您所需要的。

答案 1 :(得分:-1)

您可以使用chartr

x <- "ØxxÅxx"
chartr("ØÅ", "OA", x)
[1] "OxxAxx"

和/或gsub

y <- "Æabc"
gsub("Æ", "AE", y)
[1] "AEabc"
相关问题