Please start the libraries:
library(tidyverse)
library(knitr)
library(lubridate)
library(ggthemes)
library(scico)
library(ggmap)
library(data.table)
library(sf)
library(tmap)
Check the working directory:
getwd()
We can read and hear more and more about big data or open data. Big
data we already covered (in reality both datasets are very big, here we
just looked small fragments).
What about open data? in Estonia the state-produced
linked open data is accessible through Open Data Portal of Estonia. One
of the important feature of this data is that it’s often machine
readable.
Lets look one of the datasets from Estonian Police and Border Guard Board. It contains information about crimes in Estonia. The dataset is updated weekly and freely available.
Download it:
crime_data <- read_delim("https://opendata.smit.ee/ppa/csv/avalik_1.csv",
"\t", escape_double = FALSE, col_types = cols(ToimKell = col_character(),
ToimKpv = col_character()), trim_ws = TRUE)
glimpse(crime_data)
## Rows: 9,893
## Columns: 18
## $ JuhtumId <chr> "5fe24546-c87c-18da-848a-e723ecc8c977", "5fe24~
## $ ToimKpv <chr> "2022-11-15", "2022-11-15", "2022-11-15", "202~
## $ ToimKell <chr> "21:28", "21:00", "15:05", "14:25", "12:07", "~
## $ ToimNadalapaev <chr> "Teisipäev", "Teisipäev", "Teisipäev", "Teisip~
## $ SyndmusLiik <chr> "PISIVARGUS", "VARGUS", "PISIVARGUS", "PISIVAR~
## $ SyndmusTaiendavStatLiik <chr> NA, "MOBIILTELEFONIVARGUS,TASKUVARGUS", NA, NA~
## $ Seadus <chr> "Karistusseadustik", "Karistusseadustik", "Kar~
## $ Paragrahv <chr> "§ 218.", "§ 199.", "§ 218.", "§ 218.", "§ 199~
## $ ParagrahvTais <chr> "§ 218. Varavastane süütegu väheväärtusliku as~
## $ Loige <chr> "lg. 1.", "lg. 1.", "lg. 1.", "lg. 1.", "lg. 2~
## $ Kahjusumma <chr> "0-499", NA, "0-499", "0-499", "0-499", NA, "0~
## $ KohtLiik <chr> "AVALIK_KOHT,KAUPLUS", "AVALIK_KOHT,KASIINO", ~
## $ MaakondNimetus <chr> "Harju maakond", "Harju maakond", "Harju maako~
## $ ValdLinnNimetus <chr> "Maardu linn", "Tallinn", "Tallinn", "Tallinn"~
## $ KohtNimetus <chr> "Maardu linn", "Kesklinna linnaosa", "Lasnamäe~
## $ Lest_X <chr> "6593000-6593999", "6589000-6589499", "6587000~
## $ Lest_Y <chr> "557000-557999", "542500-542999", "545000-5454~
## $ SyyteoLiik <chr> "VT", "KT", "VT", "VT", "KT", "VT", "VT", "VT"~
# sometimes there exists easier solution (in current case default download works without any additional parameters):
crime_data_2 <- fread("https://opendata.smit.ee/ppa/csv/avalik_1.csv", encoding = "UTF-8")
glimpse(crime_data_2)
## Rows: 9,893
## Columns: 18
## $ JuhtumId <chr> "5fe24546-c87c-18da-848a-e723ecc8c977", "5fe24~
## $ ToimKpv <date> 2022-11-15, 2022-11-15, 2022-11-15, 2022-11-1~
## $ ToimKell <chr> "21:28", "21:00", "15:05", "14:25", "12:07", "~
## $ ToimNadalapaev <chr> "Teisipäev", "Teisipäev", "Teisipäev", "Teisip~
## $ SyndmusLiik <chr> "PISIVARGUS", "VARGUS", "PISIVARGUS", "PISIVAR~
## $ SyndmusTaiendavStatLiik <chr> "", "MOBIILTELEFONIVARGUS,TASKUVARGUS", "", ""~
## $ Seadus <chr> "Karistusseadustik", "Karistusseadustik", "Kar~
## $ Paragrahv <chr> "§ 218.", "§ 199.", "§ 218.", "§ 218.", "§ 199~
## $ ParagrahvTais <chr> "§ 218. Varavastane süütegu väheväärtusliku as~
## $ Loige <chr> "lg. 1.", "lg. 1.", "lg. 1.", "lg. 1.", "lg. 2~
## $ Kahjusumma <chr> "0-499", "", "0-499", "0-499", "0-499", "", "0~
## $ KohtLiik <chr> "AVALIK_KOHT,KAUPLUS", "AVALIK_KOHT,KASIINO", ~
## $ MaakondNimetus <chr> "Harju maakond", "Harju maakond", "Harju maako~
## $ ValdLinnNimetus <chr> "Maardu linn", "Tallinn", "Tallinn", "Tallinn"~
## $ KohtNimetus <chr> "Maardu linn", "Kesklinna linnaosa", "Lasnamäe~
## $ Lest_X <chr> "6593000-6593999", "6589000-6589499", "6587000~
## $ Lest_Y <chr> "557000-557999", "542500-542999", "545000-5454~
## $ SyyteoLiik <chr> "VT", "KT", "VT", "VT", "KT", "VT", "VT", "VT"~
crime_data %>%
head() %>%
kable()
JuhtumId | ToimKpv | ToimKell | ToimNadalapaev | SyndmusLiik | SyndmusTaiendavStatLiik | Seadus | Paragrahv | ParagrahvTais | Loige | Kahjusumma | KohtLiik | MaakondNimetus | ValdLinnNimetus | KohtNimetus | Lest_X | Lest_Y | SyyteoLiik |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
5fe24546-c87c-18da-848a-e723ecc8c977 | 2022-11-15 | 21:28 | Teisipäev | PISIVARGUS | NA | Karistusseadustik | § 218. | § 218. Varavastane süütegu väheväärtusliku asja ja varalise õiguse vastu | lg. 1. | 0-499 | AVALIK_KOHT,KAUPLUS | Harju maakond | Maardu linn | Maardu linn | 6593000-6593999 | 557000-557999 | VT |
5fe24550-c87c-18da-848a-e723ecc8c977 | 2022-11-15 | 21:00 | Teisipäev | VARGUS | MOBIILTELEFONIVARGUS,TASKUVARGUS | Karistusseadustik | § 199. | § 199. Vargus | lg. 1. | NA | AVALIK_KOHT,KASIINO | Harju maakond | Tallinn | Kesklinna linnaosa | 6589000-6589499 | 542500-542999 | KT |
5fe2451e-c87c-18da-848a-e723ecc8c977 | 2022-11-15 | 15:05 | Teisipäev | PISIVARGUS | NA | Karistusseadustik | § 218. | § 218. Varavastane süütegu väheväärtusliku asja ja varalise õiguse vastu | lg. 1. | 0-499 | AVALIK_KOHT,KAUPLUS | Harju maakond | Tallinn | Lasnamäe linnaosa | 6587000-6587499 | 545000-545499 | VT |
5fe24564-c87c-18da-848a-e723ecc8c977 | 2022-11-15 | 14:25 | Teisipäev | PISIVARGUS | NA | Karistusseadustik | § 218. | § 218. Varavastane süütegu väheväärtusliku asja ja varalise õiguse vastu | lg. 1. | 0-499 | AVALIK_KOHT,KAUPLUS | Harju maakond | Tallinn | Lasnamäe linnaosa | 6587000-6587499 | 545000-545499 | VT |
5fe244e2-c87c-18da-848a-e723ecc8c977 | 2022-11-15 | 12:07 | Teisipäev | VARGUS | MUU_VARGUS | Karistusseadustik | § 199. | § 199. Vargus | lg. 2. | 0-499 | AVALIK_KOHT,KAUPLUS | Harju maakond | Tallinn | Haabersti linnaosa | 6587500-6587999 | 537000-537499 | KT |
5fe244c4-c87c-18da-848a-e723ecc8c977 | 2022-11-15 | 10:54 | Teisipäev | PISIVARGUS | NA | Karistusseadustik | § 218. | § 218. Varavastane süütegu väheväärtusliku asja ja varalise õiguse vastu | lg. 1. | NA | AVALIK_KOHT,KAUPLUS | Harju maakond | Tallinn | Nõmme linnaosa | 6582000-6582499 | 540000-540499 | VT |
Unfortunately the table is in Estonian, but hopefully we manage to analyse it! First we translate the column names to English:
crime_names <- colnames(crime_data)
crime_names_en <-c("CaseId",
"Date",
"Time",
"Weekday",
"CaseType",
"CaseTypeAdditional",
"Law",
"Paragraph",
"ParagraphFull",
"Section",
"DamagesEuro",
"PlaceType",
"County",
"Municipality",
"Place",
"Lest_X",
"Lest_Y",
"Type")
data_frame("Columns, et" = crime_names, "Columns, en" = crime_names_en) %>%
kable()
Columns, et | Columns, en |
---|---|
JuhtumId | CaseId |
ToimKpv | Date |
ToimKell | Time |
ToimNadalapaev | Weekday |
SyndmusLiik | CaseType |
SyndmusTaiendavStatLiik | CaseTypeAdditional |
Seadus | Law |
Paragrahv | Paragraph |
ParagrahvTais | ParagraphFull |
Loige | Section |
Kahjusumma | DamagesEuro |
KohtLiik | PlaceType |
MaakondNimetus | County |