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