Я обычно разбиваю свои проекты на 4 части:
- load.R
- clean.R
- func.R
- do.R
load.R: заботится о загрузке всех необходимых данных. Обычно это короткий файл, считывающий данные из файлов, URL-адресов и / или ODBC. В зависимости от проекта на данном этапе я либо выпишу рабочее пространство, используя save()
, либо просто оставлю все в памяти для следующего шага.
clean.R: Здесь живут все уродливые вещи - забота о пропущенных значениях, объединение фреймов данных, обработка выбросов.
func.R: содержит все функции, необходимые для фактического анализа. source()
В этом файле не должно быть никаких побочных эффектов, кроме загрузки определений функций. Это означает, что вы можете изменить этот файл и перезагрузить его, не возвращаясь к повторным шагам 1 и 2, которые могут занять много времени для работы с большими наборами данных.
do.R: вызывает функции, определенные в func.R, для выполнения анализа и создания диаграмм и таблиц.
Основной мотивацией для этой установки является работа с большими данными, при которой вам не нужно загружать данные каждый раз, когда вы вносите изменения в последующий шаг. Кроме того, благодаря тому, что мой код разделен на части, я могу вернуться к давно забытому проекту и быстро прочитать load.R и выяснить, какие данные мне нужно обновить, а затем посмотреть на do.R, чтобы определить, какой анализ был выполнен. 1023 *