31 липня, 2016

Для чого?

Дослідницькі питання:

  1. В якому комітеті законопроекти затримуються найбільше?
  2. Яка фракція найкраще просуває свої законопроекти?

Що таке R?

R - мова програмування та програмне середовище для роботи із даними. Безкоштовна, з відкритим кодом.

Версії для Windows, Mac та Linux: https://cran.r-project.org/

RStudio

RStudio - зручне середовище для роботи із мовою R та назва одноіменної компанії-розробника.

Після встановлення R вантажте RStudio на сайті: https://www.rstudio.com/

Основні об'єкти R

Вектори

##  [1]  50 100 150 200 250 300 350 400 450 500   6   7   8   9

Списки

## [[1]]
## [1] 1 2 3 4 5
## 
## [[2]]
## [1] "a" "b" "c"

Dataframes (таблиці)

##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa

Встановлення бібліотек

dplyr - бібліотека для зручної роботи із датафреймами

install.packages('dplyr')
library(dplyr)

ggplot2 - найпопулярніша бібліотека для візуалізації

install.packages('ggplot2')
library(ggplot2)

ggthemes - теми для ggplot2

install.packages('ggthemes')
library(ggthemes)

Завантаження файлів з порталу відкритих даних

"<-" - оператор для присвоювання значення

url <- 'http://opendata.rada.gov.ua/?q=node/871/download'
download.file(url, 'bills.csv')

url - це змінна, що містить адресу файлу "bills.csv" - назва, з якою ми зберігаємо файл на диску

Читання файлів

Переважна більшість наборів даних на порталі зберігається у форматі .csv("comma separated value"). Команда для читання файлів такого формату - read.csv

bills <- read.csv('bills.csv', stringsAsFactors = F)

Тепер у змінній bills зберігається датафрейм із законопроектами.

Характеристика датафреймів

Аби побачити структуру:

str(bills)

Кінець і початок:

head(bills)
tail(bills)

Характеристика усіх стовпчиків:

summary(bills)

Переглянути датафрейм у RStudio:

View(bills)

Який статус законопроектів найпоширеніший?

sort(table(bills$currentPhase_title), decreasing = TRUE)[1:10]
## 
##     Опрацьовується в комітеті               Очікує розгляду 
##                          1664                          1630 
## Відхилено та знято з розгляду           Постанову підписано 
##                          1270                           954 
##              Знято з розгляду               Закон підписано 
##                           634                           480 
## Заслухано та знято з розгляду    Повернуто на доопрацювання 
##                           296                           171 
##          Пропозиції враховано       Очікує на друге читання 
##                            85                            61

В якому з комітетів законопроекти затримуються найбільше?

Для того, аби відповісти на це питання, потрібно:

  1. Завантажити дані про розподіл законопроектів за комітетами.
  2. Об'єднати цю таблицю із таблицею зі статусами законопроектів.
  3. Порахувати для кожного комітету відсоток законопроектів із статусом "Опрацьовується в комітеті".

Яка з фракцій найкраще просуває свої проекти законів?

Як шукати відповідь:

  1. Завантажити дані про депутатів-ініціаторів законопроетів та про належність депутатів до фракцій.
  2. Об'єднати ці таблиці із таблицею зі статусами законопроектів.
  3. Порахувати для кожної фракції відсоток законопроектів із статусом "Закон підписано".