Project Management With RStudio

Огляд

Викладання: 10 хв
Вправи: 5 хв
Питання
  • How can I manage my projects in R?

Цілі
  • Create self-contained projects in RStudio

Вступ

Науковий процес, природно, є поетапним, і багато проектів починаються з випадкових нотаток, трохи коду, потім рукопис і, зрештою, все потроху змішанt разом. Організація проекту із використанням просторових даних нічим не відрізняється від будь-якого іншого проект аналізу даних, хоча вам може знадобитися більше дискового простору, ніж зазвичай.

Більшість людей намагаються організовувати свої проєкти так:

Є багато причин чому ми ЗАВЖДИ повинні уникати цього:

  1. Насправді важко визначити, яка версія ваших даних є оригінальною, а яка модифікованою;
  2. Він стає дуже брудним, оскільки він змішує файли з різними розширеннями разом;
  3. Можливо, вам знадобить багато часу, щоб справді знайти і пов’язати правильні цифри з точним кодом, які було використано для його створення;

Хороша стуктура проекту зрештою полегшить ваше життя:

Можливе рішення

На щастя, існують інструменти та пакети, які допоможуть вам ефекттивно керувати роботою.

Одним із найпотужніших і найкорисніших аспектів RStudio є функціональне керування проєктами. Ми будемо використовувати це сьогодні, щоб створити незалежний та відтворюваний проєкт.

Виклик: Створення самостійного проєкту

Ми збираємося створити новий проєкт в RStudio:

  1. Натисніть кнопку меню “File”, потім “New Project”.
  2. Натисніть “New Directory”.
  3. Натисніть “Empty Project”.
  4. Введіть “r-geospatial” як назву каталогу.
  5. Натисніть кнопку “Create Project”.

Ключовою перевагою проєкту в RStudio є те, що коли б, не відкрили проєкт в наступній сесіїї RStudio наш робочий каталог завжди буде встановлено в папці r-geospatial. Давайте перевіримо наш робочий каталог ввівши в консоль R наступне:

getwd()

R має повернути your/path/r-geospatial як робочий каталог.

Кращі практики для організації проєкту

Хоча немає “кращого” способу викласти проєкт, є декілька загальних принципів, які слід дотримуватись, щоб полегшити управління проєктами:

Позначайте дані лише як прочитані

Це ,мабуть, найважливіша мета створення проєкту. Дані як правило трудомісткі та/або дорогі для колекціонування. Робота з ними в інтерактивній формі (e.g., в Excel), де вони можуть бути змінені, означає, що ви ніколи не впевнені, звідки з’явилися дані, або як вони були змінені із моменту збору. Тому, добре розглядати свої дані лише як “read-only”.

Очищення даних

У багатьох випадках ваші дані будуть “брудними”: вони потребуватимуть значної попередньої обробки щоб перетворитись у формат R (або будь-яку іншу мову програмування). Це завдання іноді називають “data munging”. Я вважаю, що це корисно, зберігати ці скрипти в окрему папку, і створити другу папку даних “read-only” , щоб отримати “cleaned” набори даних.

###Трактувати згенерований вихід як одноразовий

Будь-що, що створюється за допомогою ваших скриптів, повинно трактуватися як одноразовий матеріал: все повинно бути згенеровано знову за допомогою ваших скриптів.

Існує багато різних способів для керування цим виведенням. Я вважаю, корисно мати папку виведення з різними підкаталогами для кожного аналізу окремо. Це полегшує роботу пізніше, так як багато з моїх аналізів є дослідницькими і не будуть використовуватись у фінальному проєкті, і деякі з аналізів діляться між проєктами.

Зберігайте пов’язані дані разом

Деякі файли формату GIS справді складаються з 3-6 файлів, які потрібно зберігати разом і мають мати однакове ім’я, наприклад shapefiles. Може виникнути спокуса зберегти ці компоненти окремо, але якщо ви це зробите, то ваші просторові дані стануть непридатними для користування.

Дотримуйтесь послідовної схеми назв

Як правило, краще уникати перейменування завантажених просторових даних, щоб підтримувався чіткий зв’язок з істиною. Інакше, ви можете подумати, чи file_A дійсно є копією Official_file_on_website чи ні.

Для набору даних, які ви генеруєте, краще виділити час, щоб придумати найменування, яке буде працювати у вашому проєкті
і дотримуйтесь цього. Назви файлів не мають бути довгими, вони мають достатньо довгими, щоб ви могли зрозуміти який це файл. Дата створення, тема, та чи є цей файл проміжним чи остаточним - це хороші фрагменти, які варто зазначити у назві файлу. Для додаткових порад щодо іменування файлів, перегляньте the slides from Jenny Bryan’s talk “Naming things” at the 2015 Reproducible Science Workshop.

Порада: Доволі хороші практики для наукових досліджень

Доволі хороші практики для наукових досліджень дає наступні рекомендації щодо організації проєкту:

  1. Розміщуйте кожен проєкт у свій власний каталог, який названий так само як і проєкт.
  2. Розміщуйте текстові документи, які пов’язані з проєктом, у каталог doc.
  3. Розміщуйте необроблені дані та метадані в каталозі data, а файли згенеровані під час очищення та аналізу у каталог results.
  4. Розміщуйте джерела для скриптів та програм проєкту в каталозі src, і програми, перенесені з іншого місця або скомпільовані локально в каталоз bin.
  5. Назвіть усі файли для відображення їхнього вмісту та функцій.

Збереження даних у каталозі даних

Ми маємо хорошу структуру діалогів і тепер ми розмістимо/збережемо наші файли даних у каталозі data/.

Завдання 1

1. Завантажте кожен із файлів даних, наведених нижче(CTRL + S, клацніть правою кнопкою миші -> “Save as”, or File -> “Save page as”)

2. Переконайтесь, що файли мають такі назви:

  • nordic-data.csv
  • nordic-data-2.csv
  • gapminder_data.csv

3. Збережіть файли в папці data/ всередині вашого проєкту.

Ми завантажимо і перевіримо ці дані пізніше.

Завдання 2

Також ми хочемо перемістити дані, які ми завантажили data page в підкаталог всередині r-geospatial. Якщо ви ще не завантажили дані, ви можете зробити це натиснувши це посилання для завантаження.

  1. Перемістіть завантажений zip-файл у каталог data.
  2. Після переміщення даних розпакуйте всі файли.

Після завершення переміщення даних у нову папку, ваш каталог даних повинен виглядати наступним чином:

 data/
    gapminder_data.csv
    NEON-DS-Airborne-Remote-Sensing/
    NEON-DS-Landsat-NDVI/
    NEON-DS-Met-Time-Series/
    NEON-DS-Site-Layout-Files/
    NEON-DS-Airborne-Remote-Sensing.zip
    NEON-DS-Landsat-NDVI.zip
    NEON-DS-Met-Time-Series.zip
    NEON-DS-Site-Layout-Files.zip
    nordic-data.csv
    nordic-data-2.csv

Розділяйте свої скрипти

Створення окремих R scripts або Rmarkdown документів для різних етапів проєкту дозволить підвищити ефективність. Наприклад, розділення команд завантаження даних на власний файл означає, що ви не будете повторно завантажувати дані без необхідності.

Ключові моменти

  • Use RStudio to create and manage projects with consistent layout.

  • Treat raw data as read-only.

  • Treat generated output as disposable.