将Rs3普通函数转换为泛型函数
仅供参考,看起来这个问题已经有了答案 最近,我想为R基函数将Rs3普通函数转换为泛型函数,r,generics,roxygen2,R,Generics,Roxygen2,仅供参考,看起来这个问题已经有了答案 最近,我想为R基函数setdiff创建一个数据帧扩展,并认为使用泛型会更好。以下设备工作正常,但笨重: #' @export setdiff.default setdiff.default <- setdiff #' @export setdiff <- function(x, ...) { UseMethod("setdiff") } #' @export setdiff.data.frame <- function(A, B)
setdiff
创建一个数据帧扩展,并认为使用泛型会更好。以下设备工作正常,但笨重:
#' @export setdiff.default
setdiff.default <- setdiff
#' @export
setdiff <- function(x, ...) {
UseMethod("setdiff")
}
#' @export
setdiff.data.frame <- function(A, B) {
A[!duplicated(rbind(B, A))[nrow(B) + 1:nrow(A)], ]
}
#'@export setdiff.default
setdiff.default可以使用S4完成。请注意,setdiff
使用x和y作为参数,因此该方法也应:
setGeneric("setdiff")
setdiff.data.frame <- function(x, y) {
x[!duplicated(rbind(y, x))[nrow(y) + 1:nrow(x)], ]
}
setMethod("setdiff", signature("data.frame", "data.frame"), setdiff.data.frame)
# test
setdiff(BOD[1:3, ], BOD[2:4, ])
setGeneric(“setdiff”)
setdiff.data.frame我看不出问题。当帮助索引显示隐藏的函数帮助页面时,我认为这是一件“好事”。你看过?setMethod
下的选项了吗?是的,我可能要求太多了。我希望有一种方法可以将基本方法与新的泛型方法“合并”。