Предположим, что я разрабатываю пакет под названием foo
, который хотел бы использовать функцию description
из пакета memisc
. Я не хочу импортировать полное пространство имен memisc
, потому что:
- Плохо
-
memisc
переопределяет базовую функциюaggregate.formula
, которая разбивает несколько вещей. Например,example(aggregate)
терпит неудачу.
В пакет входят следующие файлы:
ОПИСАНИЕ
Package: foo
Version: 0.0
Title: Foo
Imports:
memisc
Collate:
'foo.R'
NAMESPACE
export(bar)
importFrom(memisc,description)
R/foo.R
##' bar function
##'
##' @param x something
##' @return nothing
##' @importFrom memisc description
##' @export
`bar` <- function(x) {
description(x)
}
Я думаю, что использование importFrom
не загрузило бы полное пространство имен memisc
, а только namespace::description
, но это не так. Начиная с ванили R:
R> getS3method("aggregate","formula")
## ... function code ...
## <environment: namespace:stats>
R> library(foo)
R> getS3method("aggregate","formula")
## ... function code ...
## <environment: namespace:memisc>
R> example(aggregate)
## Fails
Итак, знаете ли вы, как я могу импортировать функцию description
из memisc
, не получив aggregate.formula
в моей среде?