From 84e26e4f8755a7bee52d4ef235afd1e40ced903e Mon Sep 17 00:00:00 2001 From: ALI Date: Mon, 29 Sep 2025 15:05:16 +0100 Subject: [PATCH] Changing School_type to education_phase. (Requires data dashboard to be hae school_type renamed to education_phase). --- R/dashboard_panels.R | 4 +- R/prerun_utils.R | 94 +++++++++++++++--------------- data/attendance_data_dashboard.csv | 2 +- global.R | 8 +-- server.R | 78 ++++++++++++------------- 5 files changed, 93 insertions(+), 93 deletions(-) diff --git a/R/dashboard_panels.R b/R/dashboard_panels.R index 889f343..3fdfb78 100644 --- a/R/dashboard_panels.R +++ b/R/dashboard_panels.R @@ -207,9 +207,9 @@ dashboard_panel <- function() { selectInput( inputId = "school_choice", label = "Choose school type:", - choices = school_type_lookup %>% + choices = education_phase_lookup %>% dplyr::filter(geographic_level == "National") %>% - dplyr::select(school_type) %>% + dplyr::select(education_phase) %>% unique() %>% as.data.table(), selected = "Primary", diff --git a/R/prerun_utils.R b/R/prerun_utils.R index eb03749..72615ac 100644 --- a/R/prerun_utils.R +++ b/R/prerun_utils.R @@ -80,7 +80,7 @@ process_attendance_data <- function(attendance_data_raw, start_date, end_date, p mutate(across(.cols = 1:2, .fns = as.numeric)) %>% mutate(across(.cols = 12:12, .fns = as.numeric)) %>% arrange(time_period, time_identifier) %>% - filter(school_type %in% c("Primary", "Secondary", "Special")) + filter(education_phase %in% c("Primary", "Secondary", "Special")) # Calculate date attendance_data <- attendance_data %>% mutate(attendance_date = as.Date(attendance_date, format = "%d/%m/%Y")) @@ -90,7 +90,7 @@ process_attendance_data <- function(attendance_data_raw, start_date, end_date, p attendance_data <- attendance_data %>% mutate(week_commencing = as.Date(week_commencing, format = "%d/%m/%Y")) # Join school frequency count for proportion of schools reporting and pupil headcount for calculation of weighted totals - attendance_data <- left_join(attendance_data, dplyr::select(school_freq_count, c(geographic_level, region_name, la_name, phase, total_num_schools, total_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "school_type" = "phase")) + attendance_data <- left_join(attendance_data, dplyr::select(school_freq_count, c(geographic_level, region_name, la_name, phase, total_num_schools, total_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "education_phase" = "phase")) # Calculate measures for use across app, grouping appropriately at each level then binding back together attendance_data_daily <- attendance_data %>% @@ -117,7 +117,7 @@ process_attendance_data <- function(attendance_data_raw, start_date, end_date, p ) attendance_data_weekly <- attendance_data %>% - group_by(time_period, time_identifier, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, school_type) %>% + group_by(time_period, time_identifier, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, education_phase) %>% mutate( num_schools = mean(num_schools), enrolments = mean(enrolments), @@ -189,10 +189,10 @@ process_attendance_data <- function(attendance_data_raw, start_date, end_date, p auth_other_perc = (sum(reason_c_authorised_other) / sum(possible_sessions)) * 100, breakdown = "Weekly" ) %>% - distinct(time_period, time_identifier, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, school_type, .keep_all = TRUE) + distinct(time_period, time_identifier, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, education_phase, .keep_all = TRUE) attendance_data_ytd <- attendance_data %>% - group_by(academic_year, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, school_type) %>% + group_by(academic_year, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, education_phase) %>% mutate( academic_year = min(academic_year), time_period = min(time_period), @@ -267,10 +267,10 @@ process_attendance_data <- function(attendance_data_raw, start_date, end_date, p auth_other_perc = (sum(reason_c_authorised_other) / sum(possible_sessions)) * 100, breakdown = "YTD" ) %>% - distinct(academic_year, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, school_type, .keep_all = TRUE) + distinct(academic_year, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, education_phase, .keep_all = TRUE) # If prior to week 2 publication, comment the line below out - attendance_data_ytd <- left_join(attendance_data_ytd, dplyr::select(pa_data_raw, c(geographic_level, region_name, la_name, school_type, pa_flag, ytd_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "school_type" = "school_type")) + attendance_data_ytd <- left_join(attendance_data_ytd, dplyr::select(pa_data_raw, c(geographic_level, region_name, la_name, education_phase, pa_flag, ytd_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "education_phase" = "education_phase")) attendance_data <- bind_rows(attendance_data_daily, attendance_data_weekly, attendance_data_ytd) @@ -339,7 +339,7 @@ process_attendance_data <- function(attendance_data_raw, start_date, end_date, p .groups = "keep" ) %>% mutate( - school_type = "Total", + education_phase = "Total", attendance_perc = (sum(overall_attendance, na.rm = TRUE) / sum(possible_sessions, na.rm = TRUE)) * 100, overall_absence_perc = (sum(overall_absence, na.rm = TRUE) / sum(possible_sessions, na.rm = TRUE)) * 100, authorised_absence_perc = (sum(authorised_absence, na.rm = TRUE) / sum(possible_sessions, na.rm = TRUE)) * 100, @@ -374,7 +374,7 @@ process_attendance_data <- function(attendance_data_raw, start_date, end_date, p .groups = "keep" ) %>% mutate( - school_type = "Total", + education_phase = "Total", attendance_perc = (sum(overall_attendance, na.rm = TRUE) / sum(possible_sessions, na.rm = TRUE)) * 100, overall_absence_perc = (sum(overall_absence, na.rm = TRUE) / sum(possible_sessions, na.rm = TRUE)) * 100, authorised_absence_perc = (sum(authorised_absence, na.rm = TRUE) / sum(possible_sessions, na.rm = TRUE)) * 100, @@ -400,7 +400,7 @@ process_attendance_data <- function(attendance_data_raw, start_date, end_date, p attendance_data <- bind_rows(attendance_data, attendance_data_daily_totals, attendance_data_weekly_totals, attendance_data_ytd_totals) attendance_data <- attendance_data %>% - dplyr::filter(!(geographic_level == "Local authority" & school_type == "Total")) %>% + dplyr::filter(!(geographic_level == "Local authority" & education_phase == "Total")) %>% arrange(time_period, time_identifier) # #Handle strike days @@ -519,7 +519,7 @@ process_attendance_data_autumn <- function(attendance_data_raw, autumn_start, au mutate(across(.cols = 1:2, .fns = as.numeric)) %>% mutate(across(.cols = 12:12, .fns = as.numeric)) %>% arrange(time_period, time_identifier) %>% - filter(school_type %in% c("Primary", "Secondary", "Special")) + filter(education_phase %in% c("Primary", "Secondary", "Special")) # Calculate date attendance_data_autumn <- attendance_data_autumn %>% mutate(attendance_date = as.Date(attendance_date, format = "%d/%m/%Y")) @@ -528,11 +528,11 @@ process_attendance_data_autumn <- function(attendance_data_raw, autumn_start, au attendance_data_autumn <- attendance_data_autumn %>% mutate(week_commencing = as.Date(week_commencing, format = "%d/%m/%Y")) # Join school frequency count for proportion of schools reporting and pupil headcount for calculation of weighted totals - attendance_data_autumn <- left_join(attendance_data_autumn, dplyr::select(school_freq_count, c(geographic_level, region_name, la_name, phase, total_num_schools, total_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "school_type" = "phase")) + attendance_data_autumn <- left_join(attendance_data_autumn, dplyr::select(school_freq_count, c(geographic_level, region_name, la_name, phase, total_num_schools, total_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "education_phase" = "phase")) # Calculate measures for use across app, grouping appropriately at each level then binding back together attendance_data_autumn <- attendance_data_autumn %>% - group_by(academic_year, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, school_type) %>% + group_by(academic_year, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, education_phase) %>% mutate( academic_year = min(academic_year), time_period = min(time_period), @@ -608,9 +608,9 @@ process_attendance_data_autumn <- function(attendance_data_raw, autumn_start, au auth_other_perc = (sum(reason_c_authorised_other) / sum(possible_sessions)) * 100, breakdown = "AUT" ) %>% - distinct(time_period, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, school_type, .keep_all = TRUE) + distinct(time_period, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, education_phase, .keep_all = TRUE) - attendance_data_autumn <- left_join(attendance_data_autumn, dplyr::select(autumn_only_pa_data_raw, c(geographic_level, region_name, la_name, school_type, pa_flag, autumn_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "school_type" = "school_type")) + attendance_data_autumn <- left_join(attendance_data_autumn, dplyr::select(autumn_only_pa_data_raw, c(geographic_level, region_name, la_name, education_phase, pa_flag, autumn_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "education_phase" = "education_phase")) attendance_data_autumn <- attendance_data_autumn %>% mutate(pa_perc = (pa_flag / autumn_enrolments) * 100) # Prep for calculation of totals by doing rates X census counts @@ -650,7 +650,7 @@ process_attendance_data_autumn <- function(attendance_data_raw, autumn_start, au .groups = "keep" ) %>% mutate( - school_type = "Total", + education_phase = "Total", enrolments_pa_10_exact = "z", # Preserved as-is attendance_perc = (sum(overall_attendance, na.rm = TRUE) / sum(possible_sessions, na.rm = TRUE)) * 100, overall_absence_perc = (sum(overall_absence, na.rm = TRUE) / sum(possible_sessions, na.rm = TRUE)) * 100, @@ -678,7 +678,7 @@ process_attendance_data_autumn <- function(attendance_data_raw, autumn_start, au attendance_data_autumn <- bind_rows(attendance_data_autumn, attendance_data_autumn_totals) # attendance_data_autumn <- attendance_data_autumn %>% - # dplyr::filter(!(geographic_level == "Local authority" & school_type == "Total")) %>% + # dplyr::filter(!(geographic_level == "Local authority" & education_phase == "Total")) %>% # arrange(time_period, time_identifier) # Data suppression @@ -776,7 +776,7 @@ process_attendance_data_spring <- function(attendance_data_raw, spring_start, sp mutate(across(.cols = 1:2, .fns = as.numeric)) %>% mutate(across(.cols = 12:12, .fns = as.numeric)) %>% arrange(time_period, time_identifier) %>% - filter(school_type %in% c("Primary", "Secondary", "Special")) + filter(education_phase %in% c("Primary", "Secondary", "Special")) # Calculate date attendance_data_spring <- attendance_data_spring %>% mutate(attendance_date = as.Date(attendance_date, format = "%d/%m/%Y")) @@ -785,11 +785,11 @@ process_attendance_data_spring <- function(attendance_data_raw, spring_start, sp attendance_data_spring <- attendance_data_spring %>% mutate(week_commencing = as.Date(week_commencing, format = "%d/%m/%Y")) # Join school frequency count for proportion of schools reporting and pupil headcount for calculation of weighted totals - attendance_data_spring <- left_join(attendance_data_spring, dplyr::select(school_freq_count, c(geographic_level, region_name, la_name, phase, total_num_schools, total_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "school_type" = "phase")) + attendance_data_spring <- left_join(attendance_data_spring, dplyr::select(school_freq_count, c(geographic_level, region_name, la_name, phase, total_num_schools, total_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "education_phase" = "phase")) # Calculate measures for use across app, grouping appropriately at each level then binding back together attendance_data_spring <- attendance_data_spring %>% - group_by(academic_year, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, school_type) %>% + group_by(academic_year, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, education_phase) %>% mutate( academic_year = min(academic_year), time_period = min(time_period), @@ -867,9 +867,9 @@ process_attendance_data_spring <- function(attendance_data_raw, spring_start, sp auth_other_perc = (sum(reason_c_authorised_other) / sum(possible_sessions)) * 100, breakdown = "SPR" ) %>% - distinct(time_period, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, school_type, .keep_all = TRUE) + distinct(time_period, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, education_phase, .keep_all = TRUE) - attendance_data_spring <- left_join(attendance_data_spring, dplyr::select(spring_only_pa_data_raw, c(geographic_level, region_name, la_name, school_type, pa_flag, spring_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "school_type" = "school_type")) + attendance_data_spring <- left_join(attendance_data_spring, dplyr::select(spring_only_pa_data_raw, c(geographic_level, region_name, la_name, education_phase, pa_flag, spring_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "education_phase" = "education_phase")) attendance_data_spring <- attendance_data_spring %>% mutate(pa_perc = (pa_flag / spring_enrolments) * 100) # Prep for calculation of totals by doing rates X census counts @@ -910,7 +910,7 @@ process_attendance_data_spring <- function(attendance_data_raw, spring_start, sp .groups = "keep" ) %>% mutate( - school_type = "Total", + education_phase = "Total", enrolments_pa_10_exact = "z", # Preserved as-is attendance_perc = (sum(overall_attendance, na.rm = TRUE) / sum(possible_sessions, na.rm = TRUE)) * 100, overall_absence_perc = (sum(overall_absence, na.rm = TRUE) / sum(possible_sessions, na.rm = TRUE)) * 100, @@ -937,7 +937,7 @@ process_attendance_data_spring <- function(attendance_data_raw, spring_start, sp attendance_data_spring <- bind_rows(attendance_data_spring, attendance_data_spring_totals) # attendance_data_spring <- attendance_data_spring %>% - # dplyr::filter(!(geographic_level == "Local authority" & school_type == "Total")) %>% + # dplyr::filter(!(geographic_level == "Local authority" & education_phase == "Total")) %>% # arrange(time_period, time_identifier) # Data suppression @@ -1048,7 +1048,7 @@ process_attendance_data_summer <- function(attendance_data_raw, summer_start, su mutate(across(.cols = 1:2, .fns = as.numeric)) %>% mutate(across(.cols = 12:12, .fns = as.numeric)) %>% arrange(time_period, time_identifier) %>% - filter(school_type %in% c("Primary", "Secondary", "Special")) + filter(education_phase %in% c("Primary", "Secondary", "Special")) # Calculate date attendance_data_summer <- attendance_data_summer %>% mutate(attendance_date = as.Date(attendance_date, format = "%d/%m/%Y")) @@ -1057,11 +1057,11 @@ process_attendance_data_summer <- function(attendance_data_raw, summer_start, su attendance_data_summer <- attendance_data_summer %>% mutate(week_commencing = as.Date(week_commencing, format = "%d/%m/%Y")) # Join school frequency count for proportion of schools reporting and pupil headcount for calculation of weighted totals - attendance_data_summer <- left_join(attendance_data_summer, dplyr::select(school_freq_count, c(geographic_level, region_name, la_name, phase, total_num_schools, total_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "school_type" = "phase")) + attendance_data_summer <- left_join(attendance_data_summer, dplyr::select(school_freq_count, c(geographic_level, region_name, la_name, phase, total_num_schools, total_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "education_phase" = "phase")) # Calculate measures for use across app, grouping appropriately at each level then binding back together attendance_data_summer <- attendance_data_summer %>% - group_by(academic_year, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, school_type) %>% + group_by(academic_year, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, education_phase) %>% mutate( academic_year = min(academic_year), time_period = min(time_period), @@ -1139,9 +1139,9 @@ process_attendance_data_summer <- function(attendance_data_raw, summer_start, su auth_other_perc = (sum(reason_c_authorised_other) / sum(possible_sessions)) * 100, breakdown = "SUM" ) %>% - distinct(time_period, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, school_type, .keep_all = TRUE) + distinct(time_period, geographic_level, country_code, country_name, region_code, region_name, new_la_code, la_name, old_la_code, education_phase, .keep_all = TRUE) - attendance_data_summer <- left_join(attendance_data_summer, dplyr::select(summer_only_pa_data_raw, c(geographic_level, region_name, la_name, school_type, pa_flag, summer_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "school_type" = "school_type")) + attendance_data_summer <- left_join(attendance_data_summer, dplyr::select(summer_only_pa_data_raw, c(geographic_level, region_name, la_name, education_phase, pa_flag, summer_enrolments)), by = c("geographic_level" = "geographic_level", "region_name" = "region_name", "la_name" = "la_name", "education_phase" = "education_phase")) attendance_data_summer <- attendance_data_summer %>% mutate(pa_perc = (pa_flag / summer_enrolments) * 100) # Prep for calculation of totals by doing rates X census counts @@ -1182,7 +1182,7 @@ process_attendance_data_summer <- function(attendance_data_raw, summer_start, su .groups = "keep" ) %>% mutate( - school_type = "Total", + education_phase = "Total", enrolments_pa_10_exact = "z", # Preserved as-is attendance_perc = (sum(overall_attendance, na.rm = TRUE) / sum(possible_sessions, na.rm = TRUE)) * 100, overall_absence_perc = (sum(overall_absence, na.rm = TRUE) / sum(possible_sessions, na.rm = TRUE)) * 100, @@ -1209,7 +1209,7 @@ process_attendance_data_summer <- function(attendance_data_raw, summer_start, su # Add total onto Primary, Secondary, Special data attendance_data_summer <- bind_rows(attendance_data_summer, attendance_data_summer_totals) - # attendance_data_summer <- attendance_data_summer %>% dplyr::filter(!(geographic_level == "Local authority" & school_type == "Total")) %>% arrange(time_period, time_identifier) + # attendance_data_summer <- attendance_data_summer %>% dplyr::filter(!(geographic_level == "Local authority" & education_phase == "Total")) %>% arrange(time_period, time_identifier) # Data suppression attendance_data_summer <- attendance_data_summer %>% @@ -1312,7 +1312,7 @@ create_EES_daily_data <- function(attendance_data) { la_name, old_la_code, attendance_date, - school_type, + education_phase, num_schools, enrolments, present_sessions, @@ -1369,7 +1369,7 @@ create_EES_daily_data <- function(attendance_data) { auth_part_time_perc, auth_other_perc ) %>% - arrange(time_period, time_identifier, school_type) %>% + arrange(time_period, time_identifier, education_phase) %>% mutate(time_identifier = paste("Week", time_identifier, sep = " ")) %>% mutate_at(vars( enrolments, @@ -1450,7 +1450,7 @@ create_ees_tables <- function(attendance_data) { new_la_code, la_name, old_la_code, - school_type, + education_phase, num_schools, enrolments, present_sessions, @@ -1507,7 +1507,7 @@ create_ees_tables <- function(attendance_data) { auth_part_time_perc, auth_other_perc ) %>% - arrange(time_period, time_identifier, school_type) %>% + arrange(time_period, time_identifier, education_phase) %>% mutate(time_identifier = paste("Week", time_identifier, sep = " ")) %>% mutate_at(vars( enrolments, @@ -1582,7 +1582,7 @@ create_ees_tables <- function(attendance_data) { new_la_code, la_name, old_la_code, - school_type, + education_phase, num_schools, enrolments, present_sessions, @@ -1640,7 +1640,7 @@ create_ees_tables <- function(attendance_data) { auth_other_perc # pa_perc ) %>% - arrange(time_period, school_type) %>% + arrange(time_period, education_phase) %>% mutate( time_identifier = paste("Academic year"), time_period = paste("202526") @@ -1707,7 +1707,7 @@ create_ees_tables <- function(attendance_data) { # EES_ytd_data[is.na(EES_ytd_data)]<-"c" EES_daily_data <- EES_daily_data %>% - rename(education_phase = school_type) %>% + rename(education_phase = education_phase) %>% mutate(old_la_code = as.character(old_la_code)) %>% mutate(old_la_code = case_when( is.na(old_la_code) ~ "", @@ -1715,7 +1715,7 @@ create_ees_tables <- function(attendance_data) { )) EES_weekly_data <- EES_weekly_data %>% - rename(education_phase = school_type) %>% + rename(education_phase = education_phase) %>% mutate(old_la_code = as.character(old_la_code)) %>% mutate(old_la_code = case_when( is.na(old_la_code) ~ "", @@ -1723,7 +1723,7 @@ create_ees_tables <- function(attendance_data) { )) EES_ytd_data <- EES_ytd_data %>% - rename(education_phase = school_type) %>% + rename(education_phase = education_phase) %>% mutate(old_la_code = as.character(old_la_code)) %>% mutate(old_la_code = case_when( is.na(old_la_code) ~ "", @@ -1752,7 +1752,7 @@ create_ees_tables_autumn <- function(df_attendance_autumn) { new_la_code, la_name, old_la_code, - school_type, + education_phase, num_schools, enrolments, present_sessions, @@ -1810,7 +1810,7 @@ create_ees_tables_autumn <- function(df_attendance_autumn) { auth_other_perc # pa_perc ) %>% - arrange(time_period, school_type) %>% + arrange(time_period, education_phase) %>% mutate( time_identifier = paste("Autumn term"), time_period = paste("202526"), @@ -1904,7 +1904,7 @@ create_ees_tables_spring <- function(df_attendance_spring) { new_la_code, la_name, old_la_code, - school_type, + education_phase, num_schools, enrolments, present_sessions, @@ -1964,7 +1964,7 @@ create_ees_tables_spring <- function(df_attendance_spring) { auth_other_perc # pa_perc ) %>% - arrange(time_period, school_type) %>% + arrange(time_period, education_phase) %>% mutate( time_identifier = paste("Spring term"), time_period = paste("202526"), @@ -2053,7 +2053,7 @@ create_ees_tables_summer <- function(df_attendance_summer) { new_la_code, la_name, old_la_code, - school_type, + education_phase, num_schools, enrolments, present_sessions, @@ -2113,7 +2113,7 @@ create_ees_tables_summer <- function(df_attendance_summer) { auth_other_perc, pa_perc ) %>% - arrange(time_period, school_type) %>% + arrange(time_period, education_phase) %>% mutate( time_identifier = paste("Summer term"), time_period = paste("202526"), @@ -2183,7 +2183,7 @@ create_ees_tables_summer <- function(df_attendance_summer) { # EES_aut_data[is.na(EES_aut_data)]<-"c" EES_sum_data <- EES_sum_data %>% - rename(education_phase = school_type) %>% + rename(education_phase = education_phase) %>% mutate(old_la_code = as.character(old_la_code)) %>% mutate(old_la_code = case_when( is.na(old_la_code) ~ "", diff --git a/data/attendance_data_dashboard.csv b/data/attendance_data_dashboard.csv index a265484..1367b07 100644 --- a/data/attendance_data_dashboard.csv +++ b/data/attendance_data_dashboard.csv @@ -1,4 +1,4 @@ -time_period,time_identifier,geographic_level,country_code,country_name,region_code,region_name,new_la_code,la_name,old_la_code,attendance_date,day_number,school_type,week_commencing,num_schools,enrolments,present_sessions,approved_educational_activity,overall_attendance,overall_absence,authorised_absence,unauthorised_absence,late_sessions,possible_sessions,reason_present_am,reason_present_pm,reason_present,reason_l_present_late_before_registers_closed,reason_i_authorised_illness,reason_m_authorised_medical_dental,reason_r_authorised_religious_observance,reason_s_authorised_study_leave,reason_t_authorised_mobile_child,reason_h_authorised_holiday,reason_e_authorised_excluded,reason_c_authorised_other,reason_c1_authorised_regulated_performance,reason_j1_authorised_interview,reason_c2_authorised_temp_reduced_timetable,reason_b_aea_education_off_site,reason_j_aea_interview,reason_p_aea_approved_sporting_activity,reason_v_aea_educational_visit_trip,reason_w_aea_work_experience,reason_k_aea_education_arranged_by_la,reason_g_unauthorised_holiday,reason_u_unauthorised_late_after_registers_closed,reason_o_other_unauthorised,reason_n_no_reason_yet,reason_d_dual_registration,reason_q_la_arrangements,reason_y_not_attending_enforced_closure,reason_y1_transport_not_provided,reason_y2_travel_disruption,reason_y3_premises_out_of_use,reason_y4_closed_session_cancelled,reason_y5_detention_sentence,reason_y6_prohibited_infection_disease,reason_y7_unavoidable_cause,reason_not_attending_planned_closed,reason_z_not_attending_not_on_roll,reason_f_legacy_family_holiday,academic_year,total_num_schools,total_enrolments,attendance_perc,overall_absence_perc,authorised_absence_perc,unauthorised_absence_perc,illness_perc,appointments_perc,unauth_hol_perc,unauth_oth_perc,unauth_late_registers_closed_perc,unauth_not_yet_perc,auth_religious_perc,auth_study_perc,auth_mob_perc,auth_excluded_perc,auth_performance_perc,auth_interview_perc,auth_part_time_perc,auth_other_perc,breakdown,pa_flag,ytd_enrolments,pa_perc +time_period,time_identifier,geographic_level,country_code,country_name,region_code,region_name,new_la_code,la_name,old_la_code,attendance_date,day_number,education_phase,week_commencing,num_schools,enrolments,present_sessions,approved_educational_activity,overall_attendance,overall_absence,authorised_absence,unauthorised_absence,late_sessions,possible_sessions,reason_present_am,reason_present_pm,reason_present,reason_l_present_late_before_registers_closed,reason_i_authorised_illness,reason_m_authorised_medical_dental,reason_r_authorised_religious_observance,reason_s_authorised_study_leave,reason_t_authorised_mobile_child,reason_h_authorised_holiday,reason_e_authorised_excluded,reason_c_authorised_other,reason_c1_authorised_regulated_performance,reason_j1_authorised_interview,reason_c2_authorised_temp_reduced_timetable,reason_b_aea_education_off_site,reason_j_aea_interview,reason_p_aea_approved_sporting_activity,reason_v_aea_educational_visit_trip,reason_w_aea_work_experience,reason_k_aea_education_arranged_by_la,reason_g_unauthorised_holiday,reason_u_unauthorised_late_after_registers_closed,reason_o_other_unauthorised,reason_n_no_reason_yet,reason_d_dual_registration,reason_q_la_arrangements,reason_y_not_attending_enforced_closure,reason_y1_transport_not_provided,reason_y2_travel_disruption,reason_y3_premises_out_of_use,reason_y4_closed_session_cancelled,reason_y5_detention_sentence,reason_y6_prohibited_infection_disease,reason_y7_unavoidable_cause,reason_not_attending_planned_closed,reason_z_not_attending_not_on_roll,reason_f_legacy_family_holiday,academic_year,total_num_schools,total_enrolments,attendance_perc,overall_absence_perc,authorised_absence_perc,unauthorised_absence_perc,illness_perc,appointments_perc,unauth_hol_perc,unauth_oth_perc,unauth_late_registers_closed_perc,unauth_not_yet_perc,auth_religious_perc,auth_study_perc,auth_mob_perc,auth_excluded_perc,auth_performance_perc,auth_interview_perc,auth_part_time_perc,auth_other_perc,breakdown,pa_flag,ytd_enrolments,pa_perc 2025,37,Local authority,E92000001,England,E12000005,West Midlands,E06000020,Telford and Wrekin,894,08/09/2025,1,Primary,08/09/2025,52,12740,24366,8,24374,844,467,377,148,25218,12080,12152,24232,134,321,46,0,0,4,0,1,68,0,0,27,6,0,0,0,0,2,116,14,189,58,12,0,0,0,0,0,0,0,0,0,0,25,0,202526,55,17379,96.65318423,3.346815767,1.851851852,1.494963915,1.272900309,0.18240939,0.459988897,0.749464668,0.055515901,0.229994448,0,0,0.015861686,0.003965422,0,0,0.107066381,0.269648664,Daily,NA,NA,NA 2025,37,Local authority,E92000001,England,E12000009,South West,E06000066,Somerset,933,08/09/2025,1,Secondary,08/09/2025,35,29243,53541,182,53723,3233,1849,1384,806,56956,26299,26506,52805,736,1087,203,1,0,2,0,81,298,0,3,174,78,0,8,56,23,17,168,70,1088,58,109,2,0,3,0,396,0,0,0,7,746,10,0,202526,36,30796,94.32368846,5.676311539,3.246365616,2.429945923,1.908490765,0.356415479,0.294964534,1.910246506,0.122901889,0.101832994,0.001755741,0,0.003511483,0.142215043,0,0.005267224,0.305498982,0.5232109,Daily,NA,NA,NA 2025,37,Local authority,E92000001,England,E12000003,Yorkshire and The Humber,E08000035,Leeds,383,08/09/2025,1,Primary,08/09/2025,218,58317,105711,544,106255,4655,2305,2350,1157,110910,52063,52637,104700,1011,1543,225,2,0,2,0,10,371,2,3,147,104,0,10,416,0,14,1174,146,819,211,60,0,0,0,0,14,0,0,8,20,2,3578,0,202526,222,71138,95.80290325,4.197096745,2.078261654,2.118835092,1.391218105,0.20286719,1.058515914,0.73843657,0.131638265,0.190244342,0.001803264,0,0.001803264,0.00901632,0.001803264,0.002704896,0.132539897,0.334505455,Daily,NA,NA,NA diff --git a/global.R b/global.R index 86d49fe..b16bc22 100644 --- a/global.R +++ b/global.R @@ -145,10 +145,10 @@ geog_lookup <- attendance_data %>% ) ) -school_type_lookup <- attendance_data %>% - dplyr::select(geographic_level, school_type) %>% +education_phase_lookup <- attendance_data %>% + dplyr::select(geographic_level, education_phase) %>% unique() %>% - arrange(geographic_level, school_type) + arrange(geographic_level, education_phase) # Combined local authority and region list la_list <- geog_lookup %>% @@ -290,7 +290,7 @@ mapdata <- mapdata %>% region_name, la_name, CTYUA23CD, - school_type + education_phase ) %>% mutate( overall_label_LA = paste(la_name), diff --git a/server.R b/server.R index 709ae29..aac3bfb 100644 --- a/server.R +++ b/server.R @@ -114,12 +114,12 @@ server <- function(input, output, session) { # School type updating based on geographic level observe({ if (input$dash == "la comparisons") { - choicesSchools <- (school_type_lookup %>% - dplyr::filter(geographic_level == "Local authority"))$school_type %>% + choicesSchools <- (education_phase_lookup %>% + dplyr::filter(geographic_level == "Local authority"))$education_phase %>% unique() } else { - choicesSchools <- (school_type_lookup %>% - dplyr::filter(geographic_level == input$geography_choice))$school_type %>% + choicesSchools <- (education_phase_lookup %>% + dplyr::filter(geographic_level == input$geography_choice))$education_phase %>% unique() } updateSelectInput(session, "school_choice", @@ -201,7 +201,7 @@ server <- function(input, output, session) { if (input$geography_choice == "National") { dplyr::filter( attendance_data, geographic_level == "National", - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Daily" ) %>% filter(time_identifier == max(time_identifier)) @@ -209,7 +209,7 @@ server <- function(input, output, session) { dplyr::filter( attendance_data, geographic_level == "Regional", region_name == input$region_choice, - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Daily" ) %>% filter(time_identifier == max(time_identifier)) @@ -218,7 +218,7 @@ server <- function(input, output, session) { attendance_data, geographic_level == "Local authority", region_name == input$region_choice, la_name == input$la_choice, - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Daily" ) %>% filter(time_identifier == max(time_identifier)) @@ -233,7 +233,7 @@ server <- function(input, output, session) { if (input$geography_choice == "National") { dplyr::filter( attendance_data, geographic_level == "National", - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Weekly" ) %>% filter(time_identifier == max(time_identifier)) @@ -241,7 +241,7 @@ server <- function(input, output, session) { dplyr::filter( attendance_data, geographic_level == "Regional", region_name == input$region_choice, - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Weekly" ) %>% filter(time_identifier == max(time_identifier)) @@ -250,7 +250,7 @@ server <- function(input, output, session) { attendance_data, geographic_level == "Local authority", region_name == input$region_choice, la_name == input$la_choice, - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Weekly" ) %>% filter(time_identifier == max(time_identifier)) @@ -263,7 +263,7 @@ server <- function(input, output, session) { if (input$geography_choice == "National") { dplyr::filter( attendance_data, geographic_level == "National", - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Weekly" ) %>% filter(time_identifier == "6") @@ -271,7 +271,7 @@ server <- function(input, output, session) { dplyr::filter( attendance_data, geographic_level == "Regional", region_name == input$region_choice, - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Weekly" ) %>% filter(time_identifier == "6") @@ -280,7 +280,7 @@ server <- function(input, output, session) { attendance_data, geographic_level == "Local authority", region_name == input$region_choice, la_name == input$la_choice, - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Weekly" ) %>% filter(time_identifier == "6") @@ -294,7 +294,7 @@ server <- function(input, output, session) { if (input$geography_choice == "National") { dplyr::filter( attendance_data, geographic_level == "National", - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Weekly" ) %>% @@ -318,7 +318,7 @@ server <- function(input, output, session) { dplyr::filter( attendance_data, geographic_level == "Regional", region_name == input$region_choice, - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Weekly" ) %>% @@ -343,7 +343,7 @@ server <- function(input, output, session) { attendance_data, geographic_level == "Local authority", region_name == input$region_choice, la_name == input$la_choice, - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Weekly" ) %>% @@ -373,7 +373,7 @@ server <- function(input, output, session) { if (input$geography_choice == "National") { dplyr::filter( attendance_data, geographic_level == "National", - school_type == input$school_choice, + education_phase == input$school_choice, # time_period == max(time_period), breakdown == "YTD" ) %>% mutate( @@ -396,7 +396,7 @@ server <- function(input, output, session) { dplyr::filter( attendance_data, geographic_level == "Regional", region_name == input$region_choice, - school_type == input$school_choice, + education_phase == input$school_choice, # time_period == max(time_period), breakdown == "YTD" ) %>% mutate( @@ -420,7 +420,7 @@ server <- function(input, output, session) { attendance_data, geographic_level == "Local authority", region_name == input$region_choice, la_name == input$la_choice, - school_type == input$school_choice, + education_phase == input$school_choice, # time_period == max(time_period), breakdown == "YTD" ) %>% mutate( @@ -449,7 +449,7 @@ server <- function(input, output, session) { live_attendance_data_weekly_las <- reactive({ filter( attendance_data, geographic_level == "Local authority", - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Weekly" ) %>% @@ -467,7 +467,7 @@ server <- function(input, output, session) { live_attendance_data_weekly_natcomp <- reactive({ filter( attendance_data, geographic_level == "National", - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Weekly" ) %>% filter(time_identifier == max(time_identifier)) @@ -477,7 +477,7 @@ server <- function(input, output, session) { filter( attendance_data, geographic_level == "Regional", region_name == input$region_choice, - school_type == input$school_choice, + education_phase == input$school_choice, time_period == max(time_period), breakdown == "Weekly" ) %>% filter(time_identifier == max(time_identifier)) @@ -488,7 +488,7 @@ server <- function(input, output, session) { live_attendance_data_ytd_natcomp <- reactive({ filter( attendance_data, geographic_level == "National", - school_type == input$school_choice, + education_phase == input$school_choice, # time_period == max(time_period), breakdown == "YTD" ) @@ -498,7 +498,7 @@ server <- function(input, output, session) { filter( attendance_data, geographic_level == "Regional", region_name == input$region_choice, - school_type == input$school_choice, + education_phase == input$school_choice, # time_period == max(time_period), breakdown == "YTD" ) @@ -510,7 +510,7 @@ server <- function(input, output, session) { if (input$geography_choice == "National") { dplyr::filter( attendance_data, geographic_level == "National", - school_type == input$school_choice, + education_phase == input$school_choice, # time_period == max(time_period), breakdown == "Weekly" ) @@ -518,7 +518,7 @@ server <- function(input, output, session) { dplyr::filter( attendance_data, geographic_level == "Regional", region_name == input$region_choice, - school_type == input$school_choice, + education_phase == input$school_choice, # time_period == max(time_period), breakdown == "Weekly" ) @@ -527,7 +527,7 @@ server <- function(input, output, session) { attendance_data, geographic_level == "Local authority", region_name == input$region_choice, la_name == input$la_choice, - school_type == input$school_choice, + education_phase == input$school_choice, # time_period == max(time_period), breakdown == "Weekly" ) @@ -541,7 +541,7 @@ server <- function(input, output, session) { if (input$geography_choice == "National") { dplyr::filter( attendance_data, geographic_level == "National", - school_type == input$school_choice, + education_phase == input$school_choice, # time_period == max(time_period), breakdown == "YTD" ) @@ -549,7 +549,7 @@ server <- function(input, output, session) { dplyr::filter( attendance_data, geographic_level == "Regional", region_name == input$region_choice, - school_type == input$school_choice, + education_phase == input$school_choice, # time_period == max(time_period), breakdown == "YTD" ) @@ -558,7 +558,7 @@ server <- function(input, output, session) { attendance_data, geographic_level == "Local authority", region_name == input$region_choice, la_name == input$la_choice, - school_type == input$school_choice, + education_phase == input$school_choice, # time_period == max(time_period), breakdown == "YTD" ) @@ -572,7 +572,7 @@ server <- function(input, output, session) { response_rates <- filter( attendance_data, geographic_level == "National", time_period == max(time_period), - school_type %in% c("Total"), + education_phase %in% c("Total"), breakdown == "Daily" ) %>% arrange(attendance_date) @@ -1024,7 +1024,7 @@ server <- function(input, output, session) { filter( time_period == max(time_period), geographic_level == "National", - school_type == "Total", + education_phase == "Total", day_number == "5" ) %>% filter(time_identifier == max(time_identifier)) %>% @@ -1035,7 +1035,7 @@ server <- function(input, output, session) { filter( time_period == max(time_period), geographic_level == "National", - school_type == "Total", + education_phase == "Total", day_number == "5" ) %>% filter(time_identifier == max(time_identifier)) %>% @@ -1045,7 +1045,7 @@ server <- function(input, output, session) { filter( time_period == max(time_period), geographic_level == "National", - school_type == "Total", + education_phase == "Total", day_number == "5" ) %>% filter(time_identifier == "6") %>% @@ -1056,7 +1056,7 @@ server <- function(input, output, session) { filter( time_period == max(time_period), geographic_level == "National", - school_type == "Total", + education_phase == "Total", day_number == "5" ) %>% filter(time_identifier == "6") %>% @@ -1104,7 +1104,7 @@ server <- function(input, output, session) { filter( breakdown == "Weekly", geographic_level == "National", - school_type == "Total", + education_phase == "Total", time_period == max(time_period) ) %>% filter(time_identifier == max(time_identifier)) %>% @@ -1865,7 +1865,7 @@ server <- function(input, output, session) { paste("Underlying_data", Sys.Date(), ".csv", sep = "") }, content = function(con) { - underlying_data <- EES_daily_data %>% filter(school_type %in% c("Primary", "Secondary", "Special", "Total")) + underlying_data <- EES_daily_data %>% filter(education_phase %in% c("Primary", "Secondary", "Special", "Total")) write.csv(underlying_data, con, row.names = FALSE) } ) @@ -1875,7 +1875,7 @@ server <- function(input, output, session) { paste("Underlying_data", Sys.Date(), ".csv", sep = "") }, content = function(con) { - underlying_data <- EES_daily_data %>% filter(school_type %in% c("Primary", "Secondary", "Special", "Total")) + underlying_data <- EES_daily_data %>% filter(education_phase %in% c("Primary", "Secondary", "Special", "Total")) write.csv(underlying_data, con, row.names = FALSE) } ) @@ -1886,7 +1886,7 @@ server <- function(input, output, session) { mapdata_shaped_type <- reactive({ dplyr::filter( mapdata_shaped, - school_type == input$school_choice + education_phase == input$school_choice ) })