我有大量的名字,大部分使用的是德语字符集,即ASCII+ä,ö,ü,?有些名字使用特殊字符(例如ğ),我想将其音译成德语版本.因此,"Özoğuz"应改为"Özoguz".

我试过了

stri_trans_general("Özoğuz", "de-ASCII")

但这将导致"Oezoguz"不是所需的"Özoguz".

推荐答案

de-ASCII规则集将Ö转换为Oe.如果您想要偏离此规则,但仍保留德国的ASCII规则集,则stringi docs规定为Custom rule-based transliteration is also supported.

我们可以定义将Ö(大写和小写)转换为第三个字符的规则,将de-ASCII规则应用于其他所有字符,然后将第三个字符转换回Ö:

id <- "
    Ö > \u2135;
    ö > \u2136;
    :: de-ASCII;
    \u2135 >  Ö;
    \u2136 > ö
"

stringi::stri_trans_general("Özoğuz", id, rules = TRUE)
# [1] "Özoguz"

对于大写和小写的Ö,我分别使用了"ℵ""ℶ",但任何您确定不会出现在您的字符串中的utf-8字符都应该可以使用.

R相关问答推荐

geom_raster不适用于x比例中超过2,15的值

在R底座中更改白天和夜晚的背景 colored颜色

找出疾病消失的受试者

任意列的欧几里得距离

用相同方法得到不同函数的ROC最优截断值

如何在emmeans中计算连续变量的对比度

根据元素和前一个值之间的差值过滤矩阵的元素

将. xlsx内容显示为HTML表

无法正确设置动态创建的Quarto标注的格式

如何在R中描绘#符号?

R:从geom_ol()中删除轮廓并导出为pdf

在使用bslb和bootstrap5时,有没有办法更改特定dt行的 colored颜色 ?

`lazy_dt`不支持`dplyr/across`?

使用范围和单个数字将数字与字符串进行比较

更新R中的数据表(使用data.table)

自定义gggraph,使geom_abline图层仅在沿x轴的特定范围内显示

WRS2包中带有bwtrim的简单ANOVA抛出错误

计算使一组输入值最小化的a、b和c的值

如何将字符类对象中的数据转换为R中的字符串

如何将两个用不同的运算符替换*的矩阵相乘