1 Дещо про вільне програмне забезпечення

1.1 Мова програмування R

Мова програмування R (R Core Team 2016) є одним з найвідоміших аналітичних інструментів.

vfnjbfnkdvlknlkbnfknbflbfl (дописати)

Також обов’язково слід зазначити, що абсолютна більшість команд-функцій-пакетів мови програмування R мають розгалужену довідкову систему. Подивитись — що робить конкретна функція можна за допомогою команди help:

Якщо виникає потреба навести посилання на конкретний пакет — можна подивитись «офіційне джерело». Для цього використовується функція citation, яка виводить інформацію, закладену авторами пакету в якості «офіційного літературного посилання». Проте, не слід забувати, що вивід функції покаже інформацію про поточну версію пакету. Деякі пакети мови R розвиваються вже десятиліття і, відповідно, для старих версій інформація в посиланнях може відрізнятись.

Власне з використанням інформації функції citation і зроблено посилання в цій книзі. Для посилань на пакети R в тексті книги та для формування переліку посилань я використовував BibTeX-нотацію.

## 
## To cite ggplot2 in publications, please use:
## 
##   H. Wickham. ggplot2: Elegant Graphics for Data Analysis.
##   Springer-Verlag New York, 2016.
## 
## A BibTeX entry for LaTeX users is
## 
##   @Book{,
##     author = {Hadley Wickham},
##     title = {ggplot2: Elegant Graphics for Data Analysis},
##     publisher = {Springer-Verlag New York},
##     year = {2016},
##     isbn = {978-3-319-24277-4},
##     url = {https://ggplot2.tidyverse.org},
##   }

Тепер давайте розглянемо деякі базові функції та можливості мови програмування R. Ми будемо їх використовувати упродовж всієї книги.

Найголовніше, на що слід звертати увагу — мова програмування R обробляє багато типів об’єктів: вектори, списки, матриці, таблиці з даними. Також мова програмування може працювати із великою кількістю типів даних: числа з дробовою частиною, цілі числа, текстові записи, значення дати та часу, значення логічних операцій.

1.2 Додаткові пакети мови R

1.2.1 Пакет StationaRy

Пакет stationaRy (Iannone 2015) призначений для отримання даних метеорологічних спостережень з бази даних Агенції атмосферних та океанічних досліджень США (NOAA). Функції, які реалізовано в цьому пакеті дозволяють завантажувати весь перелік метеостанцій, вибирати потрібні метеостанції та потрібні часові інтервали і завантажувати дані у вигляді єдиної таблиці. Отримання метеорологічної інформації за допомогою функцій цього пакету буде детально розглянуто в розділі 3.4.

Для встановлення пакету stationaRy треба виконати команду:

Щоб запустити пакет, слід виконати команду:

1.2.2 Пакети dplyr та tidyr

Пакети dplyr (Wickham and Francois 2016) та tidyr (Wickham 2016) за авторством відомого науковця-програміста Хедлі Вікхема насьогодні є одними з найпопулярніших пакетів мови R. Обидва пакети призначені для оперування даними: фільтрація, вибірка, сортування, перебудова таблиць. Обидва пакети мають доволі простий і зрозумілий синтаксис та характеризуються значною швидкодією. Також в обох пакетах реалізовано так званий «тунельний інтерфейс» (pipeline) — передача вихідних даних однієї функції одразу на вхід до іншої функції. Сама команда «створення тунелю» виглядає ось так: %>%. Тунельний інтерфейс дозволяє будувати багатоступеневі командні конструкції не створюючи при цьому безліч проміжних об’єктів в робочому середовищі. В практичній частині книги ми будемо часто використовувати тунель як на стадії обробки даних, так і в процесі побудови графіків. Лише незначна частина наших дій потребуватиме зберігання проміжних результатів безпосередньо в робоче середовище. Користуватись цими пакетами, особливо пакетом dplyr, ми будемо упродовж цієї книги.

Для встановлення пакетів необхідно виконати наступні команди:

Запуск пакетів здійснюється за допомогою функції library:

1.2.3 Пакет ggplot2 та його доповнення

Пакет ggplot2 (Wickham 2009) також був написаний Хедлі Вікхемом. Цей пакет є надзвичайно потужним інструментом для створення статистичної графіки. По-суті — цей пакет є «мовою програмування всередині мови програмування», оскільки володіє власним дуже розвиненим синтаксисом.

Базові функції пакету ggplot2 дозволяють поєднувати та перекомпільовувати кінцеві результати. Завдяки таким можливостям майже не щомісяця з’являються додаткові графічні пакети, які використовують базові можливості ggplot2 для вирішення специфічних задач. Із одним з додаткових пакетів ми ознайомимось в розділі 4.3. Це буде пакет ggcorrplot (Kassambara 2016). Ми використаємо цей пакет для візуалізації кореляційних матриць при дослідженні кореляцій забруднюючих речовин у повітрі Кривого Рогу.

Не забудьте встановити ці пакети!

Коли виникне потреба у використанні пакету ggplot2 або ggcorrplot — їх так само треба завантажити за допомогою функції library:

1.2.4 Інші додаткові пакети

Пакет psych (Revelle 2016). (дописати)

Роботу з пакетом psych ми розглянемо в розділі 4.3, коли будемо обчислювати коефіцієнти кореляції між концентраціями різних забруднюючих речовин в атмосферному повітрі.

Пакет extrafont (Winston Chang 2014) створений для завантаження нових гарнітур в системну директорію R. Справа в тому, що базовий набір гарнітур, які доступні в R для створення графіки, доволі обмежений. Функції пакету extrafont дозволяють продивитись поточний перелік гарнітур та додати гарнітури, які встановлено в операційній системі, до системної директорії R.

Перегляд поточного переліку та додавання нових гарнітур виконується трьома командами:

Виконання команди імпорту гарнітур потребує деякого часу. Після закінчення імпорту можна наново подивитись перелік доступних гарнітур, виконавши команду fonts(). В UNIX-системах для імпорту гарнітур, скоріше за все, знадобиться дозвіл адміністратора. Тому зручніше це буде зробити з командного рядка в терміналі, запустивши сесію R з правами адміністратора. Наприклад, використавши команду sudo R.

Пакет zoo (Zeileis and Grothendieck 2005). Цей пакет призначений для обробки та аналізу часових рядів: даних моніторингових спостережень, фінансових даних та інших подібних масивів в яких є прив’язка кожного спостереження до часу.

Детально роботу з деякими надзвичайно корисними функціями пакету zoo ми розглянемо в розділі 3.5.2, коли будемо здійснювати часову інтерполяцію даних метеорологічних спостережень.

Пакети markdown (Allaire et al. 2015), knitr (Xie 2015) та bookdown (Xie 2016). Ці пакети дозволяють створювати звіти, книги, презентації на основі програмного коду R. Завдяки використанню цих пакетів можливе дуже швидке форматування тексту та оперативне його поширення у великій кількості форматів: EPUB, PDF, HTML тощо. Робота з цими пакетами не розглядається в тексті книги, але без цих пакетів було б неможливим її створення. Ця книга скомпільована з використанням цих трьох пакетів.

1.3 RStudio

RStudio являє собою інтегроване середовище розробки.

Оскільки мова програмування R оперує інтерфейсом командного рядка, для зручності використання розроблено декілька графічних інтерфейсів. Звісно, що основна робота все-одно виконується у командному рядку. Проте, наявність графічного інтерфейсу значно підвищує зручність користування. На робочих панелях RStudio розташовані кнопки доступу до основних та багатьох додаткових функцій: збереження, відкриття робочих проектів, змінення директорій та ін.

Зовнішній вигляд RStudio

Figure 1.1: Зовнішній вигляд RStudio

Посилання

Allaire, JJ, Jeffrey Horner, Vicent Marti, and Natacha Porte. 2015. Markdown: ’Markdown’ Rendering for R. https://CRAN.R-project.org/package=markdown.

Iannone, Richard. 2015. StationaRy: Get Hourly Meteorological Data from Global Stations. https://CRAN.R-project.org/package=stationaRy.

Kassambara, Alboukadel. 2016. Ggcorrplot: Visualization of a Correlation Matrix Using ’Ggplot2’. https://CRAN.R-project.org/package=ggcorrplot.

R Core Team. 2016. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.

Revelle, William. 2016. Psych: Procedures for Psychological, Psychometric, and Personality Research. Evanston, Illinois: Northwestern University. https://CRAN.R-project.org/package=psych.

Wickham, Hadley. 2009. Ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York. http://ggplot2.org.

Wickham, Hadley. 2016. Tidyr: Easily Tidy Data with ‘Spread()‘ and ‘Gather()‘ Functions. https://CRAN.R-project.org/package=tidyr.

Wickham, Hadley, and Romain Francois. 2016. Dplyr: A Grammar of Data Manipulation. https://CRAN.R-project.org/package=dplyr.

Winston Chang. 2014. Extrafont: Tools for Using Fonts. https://CRAN.R-project.org/package=extrafont.

Xie, Yihui. 2015. Dynamic Documents with R and Knitr. Chapman; Hall/CRC. https://www.crcpress.com/Dynamic-Documents-with-R-and-knitr-Second-Edition/Xie/p/book/9781498716963.

Xie, Yihui. 2016. Bookdown: Authoring Books and Technical Documents with R Markdown. Chapman; Hall/CRC. https://www.crcpress.com/bookdown-Authoring-Books-and-Technical-Documents-with-R-Markdown/Xie/p/book/9781138700109.

Zeileis, Achim, and Gabor Grothendieck. 2005. “Zoo: S3 Infrastructure for Regular and Irregular Time Series.” Journal of Statistical Software 14 (6): 1–27. https://doi.org/10.18637/jss.v014.i06.