R кодируют примеры/лучшие практики

Я плохо знаком с R и приходящийся нелегко соединение информации из различных источников, онлайн связанных с тем, что считают "хорошей" практикой с записью R кодом. Я прочитал основные руководства, но мне было нелегко находить информацию, которая определенно актуальна.

  1. То, каковы некоторые примеры правильно написанного/, зарегистрировало классы S3?
  2. Как насчет соответствующих классов S4?
  3. Какие конвенции Вы используете при комментарии.R классов/функций? Вы помещаете все свои комментарии и в.Rd файлах и в.R файлах? Действительно ли синхронизация этих файлов утомительна?
9
задан John Paul 1 May 2014 в 02:42
поделиться

4 ответа

Использовать ли S3, S4 или пакет вообще - это в основном вопрос стиля (как говорит Дирк), но я бы посоветовал использовать один из них, если вы хотите иметь очень хорошо структурированный объект (как и на любом языке ООП). Например, все классы временных рядов имеют объекты временных рядов (я считаю, что все они S3, за исключением его ), потому что это позволяет им применять определенное поведение в отношении создания и использования этих объектов. То же самое и с вопросом о создании пакета: это хорошая идея, если вы будете часто повторно использовать свой код или если код будет полезен кому-то другому. Это требует немного больше усилий, но добавленная организационная структура может легко компенсировать затраты.

Что касается S3 vs. S4 (обсуждается в R-Help здесь и здесь ), основная рекомендация состоит в том, что классы S3 более «быстрые и грязные» , в то время как классы S4 размещают больше жесткий контроль над объектами и типами . Если вы работаете над Bioconductor, вы обычно будете использовать S4 (см., Например, «Классы и методы S4» ).

Я бы порекомендовал прочитать кое-что из следующего:

  1. «(Не очень) Краткое введение в S4» Кристофа Дженолини
  2. «Ниша программистов: простой класс в S3 и S4» Томаса Ламли
  3. «Brobdingnag: пакет« hello world », использующий методы S4» Робин К.С. Ханкин
  4. «Преобразование пакетов в S4» Дуглас Бейтс
  5. «Как работают методы S4» Джон Чемберс

Что касается документации, то предложение Хэдли является точным: Roxygen упростит жизнь и поместит документацию рядом с кодом. Помимо этого, вы все равно можете добавить в свой код другие комментарии помимо , которые требуются Roxygen или файлам man, и в этом случае рекомендуется комментировать свой код для других разработчиков. Эти комментарии не попадут в ваш пакет; они будут видны только в исходном коде.

7
ответ дан 4 December 2019 в 10:04
поделиться

Для 3. Используйте roxygen - он работает как javadoc, чтобы записывать комментарии в исходные файлы и создавать файлы Rd.

5
ответ дан 4 December 2019 в 10:04
поделиться

Это полдюжины или более вопросов, объединенных в один, что затрудняет ответ.

Итак, давайте попробуем изнутри: сначала попробуйте решить проблему с оболочкой RODBC. Представление кода напрашивается само собой. Я бы начал с простых функций, а затем, возможно, построил бы на их основе пакет. Это уже дает вам некоторую инкапсуляцию.

Большая часть остального - стиль. Некоторые известные коды R придерживаются S4, в то время как другие ругаются. Вы всегда можете прочитать пакеты других, а также код в самом R. И вы всегда можете повторно реализовать свою оболочку RODBC разными способами и сравнить свои собственные подходы.

Edit: Отражая ваш обновленный и сильно сокращенный вопрос: выберите несколько пакетов из CRAN, в частности, среди тех, которые вы используете.

5
ответ дан 4 December 2019 в 10:04
поделиться

несколько больше связано со стилем, чем с содержанием, но стоит прочитать руководство по стилю Google R :

4
ответ дан 4 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: