Show code
# Load required libraries
library(tidyverse)
library(janitor)
library(lubridate)
library(kableExtra)
library(viridis)
library(DT)
# Load and prepare the data
event_data <- read_csv("event_data_with_analysis.csv",
col_types = cols(),
na = c("", "NA", "N/A")) %>%
clean_names() %>%
mutate(
# Parse event dates and times
event_start_time = ymd_hms(event_start_time),
event_date = as.Date(event_start_time),
event_year = year(event_date),
event_month = month(event_date),
event_day_of_week = wday(event_date, label = TRUE),
event_hour_decimal = hour(event_start_time) + minute(event_start_time) / 60,
# Filter out children/youth events and cancelled events
is_valid_event =
!str_detect(tolower(event_title %||% ""), "child|kid|family|youth") &
!str_detect(tolower(event_subjects %||% ""), "child|kid|family|youth") &
!str_detect(tolower(event_title %||% ""), "cancel") &
!is.na(event_date) &
!is.na(actual_registrations) &
actual_registrations > 0 &
hour(event_start_time) >= 9 # Remove pre-opening events
) %>%
filter(is_valid_event)
[Previous code remains the same…]
Detailed Event Data Tables
Show code
# Prepare detailed data table
detailed_events_table <- event_data %>%
group_by(event_day_of_week, event_hour = floor(event_hour_decimal), event_subjects) %>%
summarise(
avg_registrations = round(mean(actual_registrations, na.rm = TRUE), 2),
total_events = n(),
.groups = "drop"
) %>%
arrange(desc(total_events))
# Create interactive data table
datatable(detailed_events_table,
filter = 'top',
options = list(
pageLength = 10,
autoWidth = TRUE,
scrollX = TRUE
),
caption = "Detailed Event Registration Data")
Show code
# Prepare room-specific data table
room_events_table <- event_data %>%
group_by(event_room_name, event_day_of_week, event_hour = floor(event_hour_decimal)) %>%
summarise(
avg_registrations = round(mean(actual_registrations, na.rm = TRUE), 2),
total_events = n(),
.groups = "drop"
) %>%
arrange(desc(total_events))
# Create interactive room data table
datatable(room_events_table,
filter = 'top',
options = list(
pageLength = 10,
autoWidth = TRUE,
scrollX = TRUE
),
caption = "Room-Specific Event Registration Data")