У меня есть пакет PackageA
с общей функцией:
#' doWork
#'
#' Do some work!
#'
#' @export
setGeneric(
"doWork",
function(x) {
standardGeneric("doWork")
})
setMethod(
"doWork",
signature = c("numeric"),
definition = function(x) {
x == 10 # Some logic...
}
В PackageB
, который зависит от PackageA
, я хотел бы добавить еще несколько методов в doWork
:
#' @import PackageA
setMethod(
"doWork",
signature = c("character"),
definition = function(x) {
length(x) == 1 && x == "10" # Some more logic...
}
Это работает. Однако это означает, что пользователь PackageB
должен также library(PackageA)
.
Это не удается:
library(PackageB)
doWork("10") # Fails!
Это работает:
library(PackageA)
library(PackageB)
doWork("10")
Я хотел бы использовать generic из PackageA
в PackageB
, но не требует загрузки PackageA
для использования только методов в PackageB
.
Как я могу это достичь?