Как импортировать только одну функцию из другого пакета, без загрузки всего пространства имен

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

Ответы на вопрос(2)

Ваш ответ на вопрос