Какие пакеты хорошо используют объекты S4?
Какие R-пакеты хорошо используют классы S4? Я ищу пакеты, которые используют S4 соответственно (т.е. Когда сложность основной проблемы требует), хорошо написаны и хорошо документированы (чтобы вы могли прочитать код и понять, что происходит).
Мне интересно, потому что я скоро буду преподавать S4, и я бы хотел навести студентов на хорошие примеры на практике, чтобы они могли прочитать код, чтобы помочь им учиться.
Ответы
Ответ 1
Размышляя об этом, возможно, Matrix и/или lme4? Матрица делает много обмана с эффективным представлением разреженных матриц, поэтому это может быть полезным (хотя, возможно, тяжелым) примером.
Иначе, учитывая, что все BioConductor выполняется в S4, некоторые из них должны быть лучше среднего:) я я уверен, что Мартин Морган найдет хорошие примеры.
Ответ 2
Это точно не отвечает на ваш вопрос, но....
- R в двух словах разрабатывает класс S4 для
timeseries object
, а затем сравнивает его с представлением S3. Это очень хорошая иллюстрация (не слишком сложная или слишком простая) различий между S3 и S4.
- R-программирование для биоинформатики вкратце обсуждает объект set
ExpressionSet
.
Что касается использования пакетов Bioconductor, вы можете обнаружить, что для полного понимания кода - или даже для начала - вам придется разумно знать биологию. Я полагаю, что это относится и к сложным пакетам статистики; вам нужно иметь смутное представление о том, что происходит, чтобы понять причины, лежащие в основе структуры кода.
Ответ 3
На последнем заседании Лондонской конференции Брэндон Уишер дал увлекательную беседу об использовании классов S4 в своем пакете dcemriS4 для использования при анализе магнитно-резонансной томографии (МРТ) в медицинских исследованиях.
Его речь доступна здесь:
http://www.londonr.org/Medical%20Image%20Analysis%20using%20S4%20classes%20&%20methods.pdf
И пакет находится на CRAN:
http://star-www.st-andrews.ac.uk/cran/web/packages/dcemriS4/index.html
Ответ 4
sp
и зависимые пакеты используют S4 и хорошо документированы. Альфа и омега для пространственного материала в R.
Ответ 5
Я пошел бы за kernlab, который дополнительно включает в себя много кода C.
Он поставляется с удобным vignette, в котором подробно описаны некоторые понятия S4. (Однако он не использует roxygen для документации, но это не вопрос здесь.)
Ответ 6
Пытаясь завладеть системой S4
, я наткнулся на образовательный пакет sequence
. Реализация системы классов проиллюстрирована в сопроводительном наборе слайдов в репо roo
того же автора. Хотя пример используется из биостатистики, хорошо следовать.
Это отличный учебный ресурс, потому что автор тщательно контрастировал с различными объектными системами и в то же время сохранял сложность пакета, достаточного для обучения.