Какие лучшие практики Вы используете для программирования в R? [закрытый]

34
задан Frank 18 July 2013 в 19:49
поделиться

5 ответов

Я рекомендую рабочий процесс Джоша Райха Load, Clean, Func, Do из в предыдущем вопросе .

Кроме того, я рекомендую следовать руководствам по кодированию, таким как Google's R Style Guide . Использование руководства по стилю кодирования значительно упрощает чтение кода позже.

14
ответ дан 27 November 2019 в 17:05
поделиться

Я полностью согласен с существующими ответами, особенно в отношении использования пакетов. Пакеты требуют строгой дисциплины, документации и структуры, которые действительно помогают применять лучшие практики (наряду с R CMD CHECK). Вы также можете использовать пакет codetools , чтобы помочь в этом. Для документации используйте пакет roxygen.

Помимо этого, я рекомендую вам не только векторизовать свой код, но, в частности, приложить все усилия для векторизации ваших функций , что означает, что вы должны иметь возможность предоставлять векторные аргументы и получать возвращаемые векторы (даже от таких вещей, как вызовы базы данных). Это действительно улучшит эффективность и ясность вашего кода в долгосрочной перспективе.

Наконец, мне очень нравится использовать что-то вроде Sweave, чтобы организовать свой код в виде четких и грамотных воспроизводимых исследований при написании отчета. Наряду с этим я рекомендую использовать пакет cache.

6
ответ дан 27 November 2019 в 17:05
поделиться

Вы уже дали некоторые подсказки, заявив, что ваш подход - это "взломать быстрые скрипты". Если вам нужны лучшие практики и структура, просто следуйте установленным лучшим практикам из CRAN:

  • создайте пакет, это открывает возможность запуска R CMD check, что очень полезно
  • как уже многие говорили, наличие пакета помогает вам на этапе написания кода, так как вы в некоторой степени вынуждены документировать код; это хорошая вещь (TM)
  • как только у вас есть пакет, добавьте код в раздел \examples{} документации, поскольку он будет выполняться во время проверки R CMD и обеспечивает легкий вход в регрессионное тестирование
  • как только вы привыкнете к регрессионному тестированию, начните использовать такой пакет, как RUnit; что действительно является лучшей практикой
  • Указание Джей Ди на Руководство по стилю Google тоже хорошее. Это не единственное руководство по стилю, поскольку, например, Henrik's R Coding Convention предшествует ему на несколько лет; есть также Hadley's riff on Google's style guide
  • В остальном, старое-доброе "делай то, что делают твои коллеги и соавторы" также применимо
20
ответ дан 27 November 2019 в 17:05
поделиться

Для эффективности предпочтительнее векторные операции, а не для петель.

2
ответ дан 27 November 2019 в 17:05
поделиться

В целом это хорошая практика программирования, но для управления кодом используйте систему контроля версий, такую ​​как SVN.

1
ответ дан 27 November 2019 в 17:05
поделиться
Другие вопросы по тегам:

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