Этот вопрос очень тесно связан с: «Как организовать большие программы R?»
Вам следует подумать о создании пакета R. Вы можете использовать функцию package.skeleton
, чтобы начать с заданного набора R файлов. Я также настоятельно рекомендую использовать roxygen
для документирования пакета в начале, потому что это намного сложнее сделать после факта.
Чтение "Запись расширений R" . В онлайн-книге «Статистика с R» есть раздел на эту тему . Также взгляните на Создание пакетов R: Учебное пособие Фридриха Лейша. Наконец, если вы находитесь в Нью-Йорке, приходите на предстоящее собрание группы use-R в Нью-Йорке по «Создание пакетов R: краткое введение с примерами» .
Просто перефразирую некоторые предложения о передовой практике:
- Пакет позволяет использовать
R CMD check
, что очень полезно при обнаружении ошибок; отдельно вы можете посмотреть, используя пакет codetools
.
- Пакет также заставляет вас делать минимальное количество документации, что в конечном итоге приводит к лучшим методам.
- Вам также следует рассмотреть возможность выполнения модульного тестирования (например, с помощью RUnit ), если вы хотите, чтобы ваш код был устойчивым / поддерживаемым.
- Вам следует рассмотреть возможность использования руководства по стилю (например, Google Style Guide ).
- Используйте систему контроля версий с самого начала, и если вы собираетесь сделать свой код открытым исходным кодом, тогда подумайте об использовании github или r-forge.
Edit:
Относительно того, как вносить инкрементные изменения без пересборки и установки полного пакета: я считаю, что проще всего сделать изменения в соответствующем R-файле, а затем использовать команду source
для загрузки этих изменений. После загрузки библиотеки в сеанс R она всегда будет ниже в среде (и будет иметь более низкий приоритет), чем .GlobalEnv, поэтому любые изменения, которые вы вносите или загружаете напрямую, будут использоваться первыми (используйте команду search
) чтобы увидеть это). Таким образом, вы можете использовать свой пакет и перезаписывать изменения во время их тестирования в среде.
В качестве альтернативы, вы можете использовать IDE, например StatET или ESS. Они делают загрузку отдельных строк или функций из пакета R очень простой. StatET особенно хорошо разработан для управления пакетами в структуре, подобной каталогу.