我试图创建使用一些功能和脚本我创建(在Mac上使用X11)包。 尽管[R CMD检查在做其工作时,遇到如下问题:
temp = trim(unlist(strsplit(lp.add(ranefterms[[i]]),
+ "\+")))
Error: '\+' is an unrecognized escape in character string starting "\+"
最奇怪的事情,但是,是我的功能却没有“\ +”。 相反,它有 “\ \ +”(见下文)。 所以我不知道为什么“\ \ +”被认定为“\ +”。
for(i in 1:n)
temp = trim(unlist(strsplit(lp.add(ranefterms[[i]]), '\\+')))
为了进一步深入一点,我看着在Rcheck文件夹中的packageName-Ex.R文件。 事实证明,所有的“\ \” S已更改为“\”在检查过程中(例如,双斜杠我需要的功能,如strsplit()和grepl())
我不知道什么可能是它的原因。 对不起,我不能拿出一个重复的例子,...
有问题的代码来自您的帮助文件中的一个实例部分(这就是为什么它在最终packageName-Ex.R
)。 为了解决这个问题,只是逃避每个在你的例子部分的反斜杠*.Rd
文档文件与第二反斜杠。 (因此,类型\\
得到\
在处理帮助文件,并键入\\\\
得到\\
)。
除非它是逃过一劫, \
被解释为标识切片和标记宏的特殊字符(即命令,如\author
, \description
, \bold
,和\ldots
)。 从邓肯默多克的报价解析Rd文件 (这个主题的官方手册):
反斜杠\用作转义字符:\,\%,{和}去除第二字符的特殊含义。
由于这是什么看起来像在实践中例如,这里有一部分$R_SOURCE_HOME/src/library/base/man/grep.Rd
,当你键入其进行处理,以创建您查看帮助文件?grep
或?gsub
。
## capitalizing
txt <- "a test of capitalizing"
gsub("(\\\\w)(\\\\w*)", "\\\\U\\\\1\\\\L\\\\2", txt, perl=TRUE)
gsub("\\\\b(\\\\w)", "\\\\U\\\\1", txt, perl=TRUE)
在处理帮助文件,它看起来像这样:
## capitalizing
txt <- "a test of capitalizing"
gsub("(\\w)(\\w*)", "\\U\\1\\L\\2", txt, perl=TRUE)
gsub("\\b(\\w)", "\\U\\1", txt, perl=TRUE)
文章来源: An error ['\\+' is an unrecognized escape in character string starting “\\+” while creating a R package