通过roxygen2在R文档中生成具有多个参数的项目

set*_*ler 8 r devtools rd roxygen roxygen2

要生成R文档文件(.Rd),我使用Rt 3.0.2,Linux 3.11,devtools 1.5,roxygen2 4.0.1的软件包RStudio/Document选项.

目的

我想在文档文件中描述函数的多个参数,例如在此示例中:

\arguments{
  \item{arg1, arg2}{Description}
}
Run Code Online (Sandbox Code Playgroud)

在这里,参数arg1arg2由一个空格字符分割.这导致HTML版本中的自动换行符.

问题

使用RStudio/Document选项,两个参数之间的空格将第二个参数放在"描述"部分中,例如:

#' @param arg1, arg2 Description
Run Code Online (Sandbox Code Playgroud)

会变成

\arguments{
  \item{arg1,}{arg2 Description}
}
Run Code Online (Sandbox Code Playgroud)

不恰当的解决方案

我想出将两个参数保留在'参数'部分内的唯一方法是不按空格分割,例如:

#' @param arg1,arg2 Description
Run Code Online (Sandbox Code Playgroud)

会变成

\arguments{
  \item{arg1,arg2}{Description}
}
Run Code Online (Sandbox Code Playgroud)

这是不希望的,因为有了更多的参数,带有参数的'column'会占用大量空间.我试图逃避这个空间,\或者\\包括所有的争论\code{...},但没有一个按预期工作.

有没有办法在我的目标中创建输出?也许是一些引入空间的逃脱角色?

谢谢.
斯文

jar*_*auh 8

它现在似乎适用于 roxygen2 6.0.1:

#' @param arg1,arg2 Description
Run Code Online (Sandbox Code Playgroud)

(逗号后没有空格)给出

\arguments{
  \item{arg1, arg2}{Description}
}
Run Code Online (Sandbox Code Playgroud)

(逗号后有空格)。


Ric*_*ton 5

我没有找到一种方法来说服roxygen2让你生成在参数之间有空格的行,但是你总是可以在调用后手动更新Rd文件roxygenize.

library(stringr)
filename <- "your package root/man/your_function.Rd"
lines <- readLines(filename)
lines <- str_replace(lines, fixed("\item{arg1,arg2}"), "\item{arg1, arg2}")
writeLines(lines, filename)
Run Code Online (Sandbox Code Playgroud)

当然,一次性记录几件事可能会让读者感到困惑.坚持每行一个参数描述的约定几乎总是更好,因为这是读者所期望的.