【发布时间】:2020-08-15 20:09:17
【问题描述】:
我正在编写一个名为 foo 的包,它使用各种 S3 方法定义了一个名为 foo 的 S3 类。我编写了一个构造函数foo(),它返回一个foo 对象。在包之后命名类,在类之后命名函数似乎很实用,我希望:
-
package?foo会打开软件包帮助页面。 -
?foo和?foo::foo会弹出函数帮助页面。
但是会发生什么:
-
package?foo和?foo都会显示软件包帮助页面。 - 只有
?foo::foo会调出功能帮助页面。
有没有办法为包和函数赋予相同的名称以产生我想要的行为?
目前我有一个像这样的文件foo_package.R:
#' The foo package
#'
#' A very useful package.
#'
#' @docType package
#' @name foo
NULL
还有一个像这样的文件foo.R:
#' The foo function
#'
#' A very useful function.
#'
#' @param x A data frame.
#' @return A foo object.
#' @export
foo <- function(x) {
structure(x, class = c("foo", "data.frame"))
}
感谢任何提示...
【问题讨论】:
-
按照您的第二个链接中建议的
vignette("rd")中“包”下的注释,我现在根据需要获得package?foo的包帮助和?foo的功能帮助。但是,?foo-package带来了?"-",算术运算符的帮助! -
对不起。我的错。它将是
?"foo-package",因为您不能在帮助主题名称中使用运算符。但这就是你做help(package="foo")时应该出现的那个 -
?"foo-package"有效。谢谢 - 我会用更正的 roxygen 块合成一个答案。