library(dplyr) library(ggplot2)
url <- “https://d396qusza40orc.cloudfront.net/repdata%2Fdata%2FStormData.csv.bz2” download.file(url, destfile = “StormData.csv.bz2”)
storm_data <- read.csv(“StormData.csv.bz2”)
storm_data <- storm_data %>% select(EVTYPE, FATALITIES, INJURIES, PROPDMG, PROPDMGEXP, CROPDMG, CROPDMGEXP) %>% mutate( PROPDMGEXP = recode(PROPDMGEXP, “K” = 1000, “M” = 1e6, “B” = 1e9, .default = 1), CROPDMGEXP = recode(CROPDMGEXP, “K” = 1000, “M” = 1e6, “B” = 1e9, .default = 1), PROPDMG = PROPDMG * PROPDMGEXP, CROPDMG = CROPDMG * CROPDMGEXP )
health_impact <- storm_data %>% group_by(EVTYPE) %>% summarise( total_fatalities = sum(FATALITIES, na.rm = TRUE), total_injuries = sum(INJURIES, na.rm = TRUE) ) %>% arrange(desc(total_fatalities), desc(total_injuries))
top_fatalities <- head(health_impact, 10) top_injuries <- head(arrange(health_impact %>% arrange(desc(total_injuries)), 10))
economic_impact <- storm_data %>% group_by(EVTYPE) %>% summarise( total_prop_damage = sum(PROPDMG, na.rm = TRUE), total_crop_damage = sum(CROPDMG, na.rm = TRUE) ) %>% arrange(desc(total_prop_damage), desc(total_crop_damage))
top_prop_damage <- head(economic_impact, 10) top_crop_damage <- head(arrange(economic_impact %>% arrange(desc(total_crop_damage)), 10))
ggplot(top_fatalities, aes(x = reorder(EVTYPE, -total_fatalities), y = total_fatalities)) + geom_bar(stat = “identity”) + coord_flip() + labs(title = “Top 10 event types by fatalities”, x = “Event type”, y = “Number of fatalities”)
ggplot(top_injuries, aes(x = reorder(EVTYPE, -total_injuries), y = total_injuries)) + geom_bar(stat = “identity”) + coord_flip() + labs(title = “Top 10 event types by injuries”, x = “Event type”, y = “Number of injuries”)
ggplot(top_prop_damage, aes(x = reorder(EVTYPE, -total_prop_damage), y = total_prop_damage)) + geom_bar(stat = “identity”) + coord_flip() + labs(title = “Top 10 event types by property damage”, x = “Event type”, y = “Damage in USD”)
ggplot(top_crop_damage, aes(x = reorder(EVTYPE, -total_crop_damage), y = total_crop_damage)) + geom_bar(stat = “identity”) + coord_flip() + labs(title = “Top 10 event types by crop damage”, x =