Экспортированный метод S3 не найден - PullRequest
0 голосов
/ 28 февраля 2020

Я знаю, что есть вполне a несколько вопросов, похожих на этот, но после прочтения я все еще не могу заставить мой экспорт S3 работать.

Чтобы немного рассказать об этом, я хочу предоставить вспомогательные методы, которые агрегируют списки параметров для использования в более подробных c методах. Наиболее обобщенной c является функция с именем setup. По сути, он возвращает список своих вызовов с class = c("setup", "list").

. Тогда у меня есть набор методов, например setup_foo. Существует setup_foo.setup для работы с предыдущим объектом, а также setup_foo.default, который сначала вводит свои данные через setup, а затем вызывает setup_foo для промежуточного результата. Все это немного надумано, но в результате я могу собирать, проверять и повторно использовать аргументы, которые мне нужны, в последующих функциях, а также изменять указанные c на лету.

Теперь актуальная проблема. Я экспортирую setup, generi c setup_foo и методы setup_foo.default и setup_foo.setup. Мое NAMESPACE выглядит так:

S3method(setup_foo, setup)
S3method(setup_foo, default)
export(setup)
export(setup_foo)

Я могу нормально вызывать функцию setup, и она возвращает ожидаемый объект. Если я пытаюсь вызвать setup_foo, либо для предыдущего объекта, либо в качестве вызова по умолчанию, при вызове UseMethod появляется следующая ошибка:

Error in get(as.character(FUN), mode = "function", envir = envir) : 
  object 'setup_foo.[class]' of mode 'function' was not found

Я могу найти методы через getS3method и получить к ним доступ с помощью :::, но не с ::. Я также экспортирую свой собственный метод S3 для plot, и это работает без проблем. Может ли кто-нибудь указать мне правильное направление, как это можно исправить?

...