Beta
External independent tests report 2016-2023 (part 4). Interactive maps
Load libraries
Loading R libraries
library(tidyverse)
library(data.table)
library(sf)
library(plotly)
library(leaflet)
Run cancelled
zno_raw <- fread(cmd='unzip -cq data/ZNO_2016+_raw_data.zip',
na.strings = "", dec = ".", encoding = "UTF-8", quote = "")
Read geojson data of Ukrainian administrative entities. Source: Minregion
Run cancelled
oblasts <- sf::st_read("data/oblast.geojson", stringsAsFactors = FALSE)
rayons <- sf::st_read("data/rayon.geojson", stringsAsFactors = FALSE)
hromadas <- sf::st_read("data/terhromad_1.geojson", stringsAsFactors = FALSE)
Hidden output
Read hromada's dictionary. Scraped from decentralization.gov.ua
Run cancelled
hrom_dict <- fread("data/Hromadas_dictionary.csv",na.strings = "",
dec = ",",encoding = "UTF-8",quote="") %>%
mutate(rajon=paste0(rajon," ","район"),
oblast=paste0(oblast," ","область"),
pop_1000=population/1000)
Data preparation
Compose datasets for visualization
Explore source dataset. Check values consistency within columns
Run cancelled
zno <- zno_raw %>%
mutate(across(c(matches("name$|test$|lang$|status$")),as.factor)) %>%
relocate(classprofilename,classlangname, .after=tertypename)
Pivot dataset to long. It contains test results in 100-200 balls scale by subject, gender,students graduate type and ATU codes
Run cancelled
zno_geo_prep <- zno %>%
select(year,outid,sextypename,regtypename,orig_ATU_first:orig_ATU_third,
matches("test$"),matches("ball100$")) %>%
select(-msttest) %>%
mutate(across(matches("ball100$"), as.double)) %>%
melt(id.vars=c("year","outid","sextypename","regtypename",
"orig_ATU_first","orig_ATU_second","orig_ATU_third"),na.rm=TRUE,
measure.vars = patterns(test="test$",ball100="ball100$"),value.factor=TRUE) %>%
select(-variable) %>%
filter(ball100>0)