gpt4 book ai didi

roxygen - 为多个类导出 S3 方法(具有多重分配)

转载 作者:行者123 更新时间:2023-12-01 16:38:57 25 4
gpt4 key购买 nike

我有一个包含 S3 泛型和多个方法的包。我使用同一个函数来处理多个类,因此我将同一个函数分配给多个名称。我遇到的具体问题是 roxygen2 没有意识到这两个变量都绑定(bind)到 S3 方法,并且在不包含 @S3method 指令的情况下,它无法导出某些 S3 方法。但是,这会导致弃用警告(“@S3method 已弃用。请改用@export”)

以下(人为的)小例子说明了这个问题:

#' The size of an object.
#' The size of an object
#'
#' @export
size <- function(x) UseMethod('size')

#' @export
size.default <- function(x) "I dunno"

#' @export
#' @S3method size matrix
size.data.frame <-
size.matrix <- function(x) prod(dim(x))

#' @export
#' @S3method size character
size.factor <-
size.character <- function(x) length(x)

#' @export
#' @S3method size integer
size.double <-
size.integer <- function(x) sum(x)

如果不使用已弃用的 @S3method 指令,我无法找到导出矩阵、字符和整数方法的方法。有没有办法在不使用弃用指令的情况下导出这些方法?

谢谢!

最佳答案

最简单的方法是使用两行:

#' @export
size.matrix <- function(x) prod(dim(x))
#' @export
size.data.frame <- size.matrix

关于roxygen - 为多个类导出 S3 方法(具有多重分配),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27416846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com