我正在开发一个 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")
有什么想法,如何做到这一点?
据我所知,您正在使用该软件包
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"
str_replace("uüe", "\\u00fc", "ue")
OP 最初尝试中的错误:
*\\u00cf"
而不是"\\u00cf"
)u00cf
而不是 u00FC
(参见 https://www.compart.com/en/unicode/u+00fc 与 https://www.compart.com/en/ unicode/u+00cf)有趣的是,无论反斜杠是否被转义,它都有效:
"\u00fc"
或"\\u00fc"