S3 plot.list для списка новых объектов класса - PullRequest
0 голосов
/ 01 июня 2018

Я пишу пакет для анализа данных.Основная функция анализа, например foo_fit (), создает объект с классом "foo".

Я уже создал новый метод для построения объекта foo с plot.foo (), однако теперь я хочууметь передавать несколько объектов foo в виде списка / вектора для построения и иметь новый метод для обработки более чем одного передаваемого объекта foo.

Кто-нибудь имеет представление о том, создаст ли такая функция, как "plot.list () "было бы плохой идеей.

В идеале функция должна понимать, что список был передан, и затем проверять классы каждого объекта списка.

Проблема, которую я имею при созданииФункция, такая как plot.list, заключается в том, что метод будет вызываться для любого объекта списка, независимо от того, был ли он "foo", или "hclust", или "data.frame" и т. д.

Update

Так, работая на своем локальном диске, я кое-что заметил.foo сам по себе список.Для этого примера, скажем, список из трех таких, что при вызове names(foo1) он возвращает «данные», «параметры», «остатки».таким образом, передача plot(x = c(foo1, foo2)) x теперь является списком 6. Таким образом, чтобы получить желаемый результат, мне всегда нужно будет передавать объекты в следующем формате plot(x = list(foo1,foo2)).Это не конец света, но немного раздражает.

Я сейчас делаю генерал plot.list() и поделюсь им здесь, когда закончу.

1 Ответ

0 голосов
/ 01 июня 2018
  1. Сделать foo векторным классом (см. ?person, что-то похожее).
  2. Предоставляет функцию plot_list_elements(x), которая просто перебирает список x и отображает содержимое.
  3. Создайте новый класс foo_list, который содержит несколько foo объектов.Затем вы можете написать plot.foo_list(...) или любой другой метод, который вы хотели бы векторизовать (см. Polygons в пакете sp для чего-то похожего).
  4. Предоставьте пользователю возможность писать for (x in my_list) plot(x), что не так уж и плохо.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...