为了使gSub函数传递R CMD CHECK,我只需要使用ASC字符.在我包的一个地方,我使用了破折号,它是非ASC字符,如下所示:

sub("–", "to", x = "–")

这当然有效.

然而,我想在替换中使用ASC(或其他)代码,以避免来自R CMD CHECK的警告,如下所示:

stringi::stri_enc_toascii("–")
[1] "\032"
 
sub("\\032", "to", x = "–")

这不起作用.

如何匹配ASSEARCH格式的角色?

推荐答案

这是一个en dash:

en破折号、en rule或nut破折号-传统上是em破折号的一半宽度.

关于ASC的注释

以下是直接来自shQuote() docs的示例:

## Backslashes followed by up to three numbers are interpreted as
## octal notation for ASCII characters.
"\110\145\154\154\157\40\127\157\162\154\144\41"
# [1] "Hello World!"

然而,en dash的八进制表示形式超过三位数字(为20023),因此您不能对此字符使用八进制表示法.

使用Unicode

您可以如下判断其Unicode representation:

as.hexmode(utf8ToInt("–"))
# [1] "2013"

R以以下格式取Unicode escape sequences:

具有给定代码的"\unnnn"Unicode字符(1--4个十六进制数字)

具有给定代码的"\Unnnnnnnn"Unicode字符(1--8个十六进制数字)

在这种情况下,您可以使用其中之一,但我倾向于使用大写变体,因为我不需要担心数字的数量.只需将其提供给sub():

sub("\U2013", "to", x = "–")
# [1] "to"

R相关问答推荐

保存shiny 的代码嗅探器:避免$ Symbol问题

将模拟变量乘以多个观测结果中的模拟变量

使用R中的gt对R中的html rmarkdown文件进行条件格式设置表的单元格

计算时间段的ECDF(R)

如何从像glm这样的模型中提取系数表的相关性?

在rpart. plot或fancyRpartPlot中使用带有下标的希腊字母作为标签?

更改STAT_VALLES/STAT_PEAKS中的箭头线宽/大小

在多页PDF中以特定布局排列的绘图列表不起作用

汇总数据帧中的复制列,保持行的唯一性

在数据帧列表上绘制GGPUP

从多层嵌套列表构建Tibble?

R中的类别比较

我将工作代码重构为一个函数--现在我想不出如何传递轴列参数

如何移动点以使它们的打印不重叠

R-找出存在其他变量的各种大小的所有组合

在R中添加要打印的垂直线

在R中,有没有什么方法可以根据一列中的多个值来过滤行?

通过不完全重叠的多个柱连接

通过分析特定列中的字符串在数据框中创建新的行和列

Data.table条件合并