Incorporating Interactivity
library(dplyr)
library(tidyverse)
library(ggplot2)
library(DT)
library(plotly)
read_disaster_data <- function(file_path) {
data <- read_delim(file_path, delim = ",", skip = 2, show_col_types = FALSE)
data %>%
mutate(
Name = str_remove(Name, "\\(.*\\)"),
Disaster = as.factor(Disaster),
`Begin Date` = ymd(`Begin Date`),
`End Date` = ymd(`End Date`),
`CPI-Adjusted Cost` = as.numeric(`CPI-Adjusted Cost`),
`Unadjusted Cost` = as.numeric(`Unadjusted Cost`),
Deaths = as.numeric(Deaths)
)
}
mega_data <- list.files("data", pattern = "[.]csv$", full.names = TRUE)
disaster_data <- map_df(mega_data, read_disaster_data)
billion_dollar_disasters <- write_csv(disaster_data, "Results/billion_dollar_disasters.csv")
billion_dollar_disasters <- billion_dollar_disasters %>%
mutate(year = year(`Begin Date`))
ggplot(billion_dollar_disasters) +
geom_bar(aes(x = year, fill = Disaster)) +
scale_color_viridis_d()+
labs(x = "Year",
y = "Count",
fill = "Disaster type",
title = "Disaster Type by Year") +
theme_minimal()
datatable(billion_dollar_disasters, rownames = FALSE, filter = "top", options = list(scrollX = TRUE)) %>%
formatStyle(columns = colnames(billion_dollar_disasters), fontSize = '10pt')
cost_per_year <- billion_dollar_disasters %>%
group_by(year) %>%
summarize(total_cost = sum(`CPI-Adjusted Cost`, na.rm = TRUE))
cost_per_year_interactive <- ggplot(cost_per_year, aes(x = year, y = total_cost)) +
geom_line(color = "blue", size = .8) +
scale_y_continuous(labels = scales::label_dollar(scale = 1/1000, suffix = "B")) +
labs(x = "Year",
y = "Combined Adjusted Cost in Billions",
title = "Combined Adjusted Cost (in Billions) by Year")+
theme_minimal()
ggplotly(cost_per_year_interactive)