Вместо того, чтобы сосредоточиться на контроле версий в частности, похоже, что вы действительно задаете больший вопрос о том, как статистический анализ сравнивается с разработкой программного обеспечения. Это интересный вопрос. Вот некоторые мысли:
Анализ данных может быть больше похожим на искусство, чем на науку. В каком-то смысле вам может понадобиться вдохновение для процесса, которому автор будет следовать при написании книги, а не процесса, которому будет следовать разработчик программного обеспечения. С другой стороны, мне еще предстоит столкнуться с программным проектом, который шел по прямой. И даже на теоретическом уровне существует большое количество отклонений в методологиях разработки программного обеспечения . Из них, учитывая, что статистический анализ может представлять собой процесс обнаружения (то есть тот, который не может быть полностью спланирован заранее), имеет смысл придерживаться чего-то вроде гибкой методологии (гораздо больше, что-то вроде методологии водопада). Другими словами, вы должны планировать, чтобы ваш анализ был итеративным и саморефлексивным.
Тем не менее, я думаю, что представление о том, что статистический анализ является чисто исследовательским без какой-либо цели, потенциально проблематично. Это может привести к тому, что вы на 5 шагов пройдете момент своей эврики и не сможете вернуться к нему. Всегда есть какая-то цель, даже если сама цель меняется. Кроме того, если нет цели, как вы узнаете, когда достигли конца?
Один из подходов - начать с одного R-файла при запуске проекта (или набора файлов, как в примерах Джоша и Бернда) и постепенно добавлять к нему (чтобы он увеличивался в размере) по мере открытия , Это также особенно верно, когда у вас есть данные, которые необходимо сохранить как часть анализа. Этот файл должен регулярно контролироваться версией, чтобы гарантировать, что вы всегда можете сделать шаг назад, если допустите ошибки (что позволит увеличить прибыль). Системы контроля версий чрезвычайно полезны при разработке не только потому, что они гарантируют, что вы ничего не потеряете, но и потому, что они предоставляют вам временную шкалу. И пометьте свои проверки, чтобы вы знали, что в них с первого взгляда, и отметили основные вехи. Мне нравится мнение JD о регистрации перед отправкой чего-либо.
После того, как вы пришли к окончательному набору заключений, зачастую лучше создать окончательную версию вашего файла, в которой обобщены результаты вашего анализа от начала до конца. Вы можете даже подумать о том, чтобы поместить это в документ Sweave, чтобы он был полностью автономным и грамотным.
Вам также следует серьезно подумать о том, что делают окружающие вас люди. Ничто не заставляет меня съеживаться больше, чем видеть, как люди заново изобретают колесо, особенно когда это означает дополнительную работу для интеграции всей группы.
Ваши решения о том, какую систему контроля версий использовать, какую IDE и т. Д. (Вопросы реализации), в конечном счете, чрезвычайно низки на тотемном столбе по отношению к общему управлению проектом. Просто используйте любой один из них правильно, и вы уже 95% пути, и различия между ними невелики по сравнению с альтернативой ничего не использовать.
Наконец, если вы используете что-то вроде github, google code или R-forge, вы заметите нечто общее, что у всех них есть: набор инструментов, выходящий за рамки просто системы контроля версий. А именно, вам следует рассмотреть возможность использования таких вещей, как система отслеживания проблем и вики, для документирования прогресса и регистрации открытых проблем / задач. Чем более вы организованы в своем анализе, тем выше вероятность успеха.