【问题标题】:Convert accented characters into ascii character将重音字符转换为 ascii 字符
【发布时间】:2012-11-16 14:43:55
【问题描述】:

从包含 1600 万个字符串变量的向量中去除德语(或法语)重音的最佳方法是什么。

例如,“干燥综合征”变成“干燥综合征”

将单个字符转换为单个字符比音译更好,例如

ä => ae ö => oe ü => ue.

例如,使用正则表达式是一种选择,但有没有更好的方法(R 包)?

gsub('ü','u',gsub('ö','o',"Sjögren's syndrome ( über) "))

对于非 R 平台有 SO 解决方案,但对于 R 来说不是一个好的解决方案。

【问题讨论】:

标签: r transliteration


【解决方案1】:

使用iconv 转换为带有音译的ASCII(如果支持):

iconv(c("über","Sjögren's"),to="ASCII//TRANSLIT")
[1] "uber"      "Sjogren's"

【讨论】:

  • 对于重音字符,例如é,这将导致看起来像'e。在上述操作的输出向量上运行此命令:out <- gsub("\\'", '', out)
【解决方案2】:

其中一个链接的答案建议

library(stringi)
stri_trans_general("Zażółć gęślą jaźń", "Latin-ASCII")

[1] "Zazolc gesla jazn"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 2012-12-16
    相关资源
    最近更新 更多