Ukraine's Schools Graduate Tests Report EIT/NMT (part 4)
  • AI Chat
  • Code
  • Report
  • Beta
    Spinner

    External independent tests report 2016-2023 (part 4). Interactive maps

    Intro

    This is a third part of Ukrainian EIT/NMT report (2016-2023). Due to limitation of publication size the report was split up into parts. The previous parts you can find here: Part 1, Part 2, and Part 3

    Load libraries

    Loading R libraries

    library(tidyverse)
    library(data.table)
    library(sf)
    library(plotly)
    library(leaflet)

    Read Data

    Read CSV file from source into a datatable. Raw data from UCEQA has been processed,enriched, and cleaned by me. R scripts for data prep and cleansing you can find in git

    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)