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

时间:2014-08-14 12:25:12

标签: r devtools roxygen2 roxygen rd

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

目的

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

\arguments{
  \item{arg1, arg2}{Description}
}

此处,参数arg1arg2由空格字符分隔。这导致HTML版本中的自动换行符。

问题

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

#' @param arg1, arg2 Description

将成为

\arguments{
  \item{arg1,}{arg2 Description}
}

不恰当的解决方案

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

#' @param arg1,arg2 Description

将成为

\arguments{
  \item{arg1,arg2}{Description}
}

这是不需要的,因为有了更多的参数,带有参数的'column'会占用大量空间。我尝试使用\\\来逃避空间,并使用\code{...}包含所有参数,但没有一个按预期工作。

问题

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

谢谢。
斯文

2 个答案:

答案 0 :(得分:5)

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

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)

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

答案 1 :(得分:0)

现在似乎可以使用roxygen2 6.0.1:

#' @param arg1,arg2 Description

(逗号后没有空格)给出

\arguments{
  \item{arg1, arg2}{Description}
}

(以逗号后的空格)。