Предположим, что я разрабатываю пакет под названием 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 в моей среде?