首页 > 解决方案 > 在 str_replace 中使用 ascii

问题描述

我正在开发一个 R 包,它具有替换 ü、ä 等字符的功能。如果我检查包,我会收到警告:

可移植包必须在其 R 代码中仅使用 ASCII 字符,注释中可能除外。对其他字符使用 \uxxxx 转义。

该函数包含

  n <- str_replace_all(n, c('ü' = 'ue', 'ï' = 'ie', "ä" = 'ae','ö' = 'oe'))

我尝试用“\u00fc”替换ü,其他人也一样。但这不起作用。

str_replace("uüe", \\u00cf, "ue")
str_replace("uüe", *\\u00cf", "ue")
str_replace("uüe", <+u00cf>, "ue")

任何想法,如何做到这一点?

标签: rtidyverse

解决方案


据我所知,您正在使用 package stringr。这确实允许使用和操作非 ASCII 字符。

例如:

vec <- "ärmlich nicht über den wolken, höchstens hïmmlisch"

设置要替换的字符串的名称setNames

ref <- setNames(c("ue", "ie", "ae", "oe"),
                c("ü", "ï", "ä", "ö"))

将此集合输入到str_replace_all操作中:

library(stringr)
str_replace_all(vec, ref)
[1] "aermlich nicht ueber den wolken, hoechstens hiemmlisch"

推荐阅读