Использование метода «как» / coerce из другого пакета в моем пакете - PullRequest
0 голосов
/ 15 января 2019

Я пишу пакет R и хочу внутренне использовать функцию «as» из другого пакета для приведения объекта в соответствие. Но я не могу понять, как импортировать его в пакет (с помощью importFrom или: :), как если бы вы обычно экспортировали функцию.

Как я могу импортировать определенный вариант метода 'as' в мой пакет из другого пакета? Или все "как" методы из другого пакета?

В частности: функция 'контрастная_эх_группа_to_the_rest' в моем пакете (celaref), которая использует эту функцию, будет работать, только если вы вызываете библиотеку (MAST) рядом с библиотекой (celaref).

Метод 'as', который я хочу использовать, отображается в showMethods("coerce") как from="SingleCellExperiment", to="SingleCellAssay", когда я импортирую пакет 'MAST'.

например. используя демонстрационные данные

library(celaref)              # my package, uses MAST internally
library(SingleCellExperiment) # a dependancy
# library(MAST)               # Uncomment this and it works
contrast_each_group_to_the_rest(demo_ref_se, num_cores=1)

Ошибка:

Error in as(sca, "SingleCellAssay") : 
  no method or default for coercing “SingleCellExperiment” to “SingleCellAssay”

Спасибо.

1 Ответ

0 голосов
/ 16 января 2019

Как предположил Нил Фульц:

Вы можете попробовать добавить importFrom ("методы", как) - github.com/cran/Matrix / blob / master / NAMESPACE # L24 это заставляет меня думать, что MAST может понадобиться добавить в их именное пространство.

Это работает:

#' @importFrom "methods" as в заголовке функции

или

importFrom("methods",as) в NAMESPACE

ИСПРАВЛЕНИЕ - на самом деле, это, похоже, не работает так, как я думал. Любые дополнительные советы приветствуются.

Исправлено - импорт MAST в заголовок функции (упс) и использование странного формата «как», который я не совсем понимаю. (Вероятно, зависит от фактических (очень похожих) объектов данных в этих пакетах)

#' @import SummarizedExperiment
#' @import MAST
sca <- new("SingleCellAssay")
as(sca, "SingleCellExperiment") <- sce.in
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...