【发布时间】:2011-01-06 14:42:52
【问题描述】:
我使用 Roxygen 来生成我正在开发的包的 Rd 文件,但是我在使用默认参数设置为 '\n' 的函数时遇到了一些问题,例如:
lineCount <- function(text, sep='\n') {
...
}
其目的是计算字符串中的换行符 ('\n')。
问题是 R CMD check 给出警告:
Codoc mismatches from documentation object 'lineCount':
lineCount
Code: function(text, sep = "\n")
Docs: function(text, sep = " ")
Mismatches in argument default values:
Name: 'sep' Code: "\n" Docs: " "
在我看来,这个问题是由写入 Rd 文件引起的(通过 cat() 写入标准 LaTeX 文件总是需要出于某种目的使用双转义字符,例如:\\newline - 正如我所经历的那样)。
如果我在分隔符上加上一个额外的反斜杠,例如:
lineCount <- function(text, sep='\\n') {
...
}
问题仍然存在,因为在代码中它看起来像 '\\n',但在文档(Rd 文件)中它看起来像 '\n'。
我的问题有简单的解决方案吗?可能是 Roxygen 中的一个额外标签,它可以定义如何将函数的参数写入 Rd 文件? 抱歉,如果问了一个太明显的问题,但是在 Google 搜索了一段时间后我迷路了。
历史:http://permalink.gmane.org/gmane.comp.lang.r.roxygen/24
更新:使用roxygen2!
【问题讨论】:
-
这是 roxygen 中的一个简单错误,不需要任何额外配置。据我所知,roxygen 的开发将在不久的将来再次起飞,所以希望它会很快得到修复。
-
谢谢哈德利,这让事情变得清晰。
-
你能试着只计算“\”而不是计算“\n”吗?
-
我现在遇到了与非 ASCII 字符类似的问题,例如
param="\u279B"。 (使用 roxygen2 v6.0.1) -
我找到了一个很好的解决方法,使用 intToUtf8(),请参阅下面的答案...