如何解决记录定义具有相同名称的函数的软件包
我正在编写一个名为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"))
}
任何提示都值得赞赏...
解决方法
@MrFlick的注释中的second link指向vignette("rd")
中“包装”下的文字之后,我能够获得预期的行为。
foo.R
不变,但是foo-package.R
现在显示为:
#' The foo package
#'
#' A very useful package.
#'
#' @docType package
#' @keywords internal
#' @aliases foo-package
"_PACKAGE"
现在,根据需要:
-
package?foo
和?"foo-package"
会显示软件包帮助。 -
?foo
和?foo::foo
弹出功能帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。