Как правильно импортировать метод S3 без импорта всего пакета

Я хотел бы использовать одну функцию из пакета с именем myPackage под названием as.data.frame.mywhateverS3class

Когда я смотрю на пакет NAMESPACE, он выглядит следующим образом: S3method(as.data.frame, mywhateverS3class) Я хотел бы использовать эту функцию внутри другого пакета. Что я обычно делаю, так это указываю это в roxygen2 как @import myPackage, чтобы это генерировало import(myPackage) внутри другого пакета. Это работает.

Но в этом случае я хотел бы не импортировать весь пакет, а только метод S3. Когда я указываю importFrom(myPackage, as.data.frame) или importFrom(myPackage, as.data.frame.mywhateverS3class), это не работает, поскольку .data.frame не экспортируется в myPackage, а as.data.frame.mywhateverS3class скрывается, когда я набираю methods(as.data.frame)

Мне действительно нужно импортировать весь пакет NAMESPACE для этого? Я просматриваю http://cran.r-project.org/doc/manuals/R-exts.html и не может найти, как ограничить импорт только методом S3 без импорта всего ПРОСТРАНСТВА ИМЕН. Есть ли способ сделать это?


person Community    schedule 16.04.2014    source источник
comment
Это может быть сложно, так как метод S3 может зависеть от других функций в пакете...   -  person Gregor Thomas    schedule 16.04.2014
comment
В вопросе и в моем случае дженерик определен в базовом пакете, так что это не проблема.   -  person    schedule 17.04.2014
comment
Что произойдет, если вы импортируете описание пакета, но на самом деле ничего из него не импортируете? Я думаю, этого может быть достаточно, чтобы импортировать таблицу методов S3 из другого пакета.   -  person hadley    schedule 17.04.2014
comment
Когда я указываю myPackage в Imports в DESCRIPTION, не помещая его в NAMESPACE, я получаю в R CMD проверку следующего ПРИМЕЧАНИЕ: Namespace in Imports field not imported from: 'myPackage' All declared Imports should be used.   -  person    schedule 17.04.2014
comment
Затем импортируйте только одну функцию, любую функцию, и таблица методов S3 будет доступна автоматически. См. stackoverflow.com/a/59667634/6788081.   -  person Iñaki Úcar    schedule 09.01.2020