| Title: “Events most harmful to economy and population” |
| Synopsis |
|---|
| NOAA Storm Database The following analysis details from across the United States, types of events most harmful with respect to population health & the economy. The final results are determined through the creation of Barplots detailing the Top 10 events of each category. Due to undefined exponents, a number of statistics have been omitted from results. |
Data Processing consist of the usage of the U.S. National Oceanic and Atmospheric Administration’s (NOAA) storm database. The document can be found here: https://d396qusza40orc.cloudfront.net/repdata%2Fdata%2FStormData.csv.bz2. After the loading of the data, Data was divided into 2 groups (Fatalities/Injuries) Having split the data into 2 seperate groups, data was updated to combine each group into actionable events. Having defined the top 10 events, the data was aggregated to determine the totals for each event. Having defined the totals of the top 10 event, the data was then plotted as a Barplot
Please find below the code associated to both questions: Quesion 1
if(!file.exists("./StormData.csv.bz2")) {
url<-"https://d396qusza40orc.cloudfront.net/repdata%2Fdata%2FStormData.csv.bz2"
download.file(url, destfile="./StormData.csv.bz2", method="curl")
}
storm <- read.csv(bzfile("StormData.csv.bz2"), header=TRUE, stringsAsFactors=FALSE)
removed.event.storm.fatalities <- subset(storm, FATALITIES > 0)
removed.event.storm.injuries <- subset(storm, INJURIES > 0)
removed.event.storm.fatalities$EVTYPE<- toupper(removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("AVALANCE","AVALANCHE",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("FLASH FLOOD/FLOOD","FLASH FLOOD",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("FLASH FLOOD/FLOOD","FLASH FLOOD",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("FLASH FLOODING","FLASH FLOOD",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("FLASH FLOODING/FLOOD","FLASH FLOOD",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("FLASH FLOODS","FLASH FLOOD",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("FLOOD & HEAVY RAIN","FLOOD",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("FLOOD/FLASH FLOOD","FLOOD",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("FLOOD/RIVER FLOOD","FLOOD",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("FLOODING","FLOOD",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("HIGH WIND AND SEAS","HIGH WIND",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("HIGH WIND/SEAS","HIGH WIND",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("HIGH WINDS","HIGH WIND",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("HIGH WIND/SEAS","HIGH WIND",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("HIGH WIND/SNOW","HIGH WIND",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("LIGHTNING.","LIGHTNING",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("RIP CURRENTS","RIP CURRENT",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("RIP CURRENTS/HEAVY SURF","RIP CURRENT",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("RIP CURRENT/HEAVY SURF","RIP CURRENT",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("TSTM WIND (G35)","TSTM WIND",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("TSTM WIND/HAIL)","TSTM WIND",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("THUNDERSTORM WIND (G40)","TSTM WIND",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("THUNDERSTORM WIND G52","TSTM WIND",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("THUNDERSTORM WINDS","TSTM WIND",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.fatalities$EVTYPE <- gsub("THUNDERTORM WINDS","TSTM WIND",removed.event.storm.fatalities$EVTYPE)
removed.event.storm.injuries$EVTYPE<- toupper(removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("AVALANCE","AVALANCHE",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("FLASH FLOOD/FLOOD","FLASH FLOOD",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("FLASH FLOOD/FLOOD","FLASH FLOOD",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("FLASH FLOODING","FLASH FLOOD",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("FLASH FLOODING/FLOOD","FLASH FLOOD",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("FLASH FLOODS","FLASH FLOOD",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("FLOOD & HEAVY RAIN","FLOOD",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("FLOOD/FLASH FLOOD","FLOOD",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("FLOOD/RIVER FLOOD","FLOOD",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("FLOODING","FLOOD",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("HIGH WIND AND SEAS","HIGH WIND",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("HIGH WIND/SEAS","HIGH WIND",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("HIGH WINDS","HIGH WIND",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("HIGH WIND/SEAS","HIGH WIND",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("HIGH WIND/SNOW","HIGH WIND",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("LIGHTNING.","LIGHTNING",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("RIP CURRENTS","RIP CURRENT",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("RIP CURRENTS/HEAVY SURF","RIP CURRENT",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("RIP CURRENT/HEAVY SURF","RIP CURRENT",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("TSTM WIND (G35)","TSTM WIND",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("TSTM WIND/HAIL)","TSTM WIND",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("THUNDERSTORM WIND (G40)","TSTM WIND",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("THUNDERSTORM WIND G52","TSTM WIND",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("THUNDERSTORM WINDS","TSTM WIND",removed.event.storm.injuries$EVTYPE)
removed.event.storm.injuries$EVTYPE <- gsub("THUNDERTORM WINDS","TSTM WIND",removed.event.storm.injuries$EVTYPE)
subset.fatalities <- aggregate(FATALITIES~EVTYPE, data = removed.event.storm.fatalities, FUN=sum)
sort.subset.fatalities <- subset.fatalities[order(subset.fatalities$FATALITIES),c(1,2)]
final.fatalities <- tail(sort.subset.fatalities,10)
final.fatalities
## EVTYPE FATALITIES
## 1 AVALANCHE 225
## 60 HIGH WIND 293
## 31 FLOOD 495
## 117 TSTM WIND 570
## 95 RIP CURRENT 577
## 77 LIGHTNING 817
## 44 HEAT 937
## 29 FLASH FLOOD 1013
## 21 EXCESSIVE HEAT 1903
## 113 TORNADO 5633
barplot(final.fatalities$FATALITIES,names.arg=final.fatalities$EVTYPE,cex.names=0.5,col=c("red","yellow","light blue","green","orange","black","pink","purple","grey","brown"), main="TOP 10 Events by Fatalities")
subset.injuries <- aggregate(INJURIES~EVTYPE, data = removed.event.storm.injuries, FUN=sum)
sort.subset.injuries <- subset.injuries[order(subset.injuries$INJURIES),c(1,2)]
final.injuries <- tail(sort.subset.injuries,10)
final.injuries
## EVTYPE INJURIES
## 53 HIGH WIND 1465
## 105 THUNDERSTORM WIND 1488
## 25 FLASH FLOOD 1785
## 66 ICE STORM 1975
## 39 HEAT 2100
## 72 LIGHTNING 5230
## 17 EXCESSIVE HEAT 6525
## 26 FLOOD 6806
## 115 TSTM WIND 7865
## 109 TORNADO 91346
barplot(final.injuries$INJURIES,names.arg=final.injuries$EVTYPE,cex.names=0.5,col=c("red","yellow","light blue","green","orange","black","pink","purple","grey","brown"), main="TOP 10 Events by Injuries")
Question 2
removed.event.storm.crop <- subset(storm, CROPDMG > 0)
removed.event.storm.property <- subset(storm, PROPDMG > 0)
updated.storm.property <- subset(removed.event.storm.property, select=c("EVTYPE","PROPDMG","PROPDMGEXP"))
updated.storm.crop <- subset(removed.event.storm.crop, select=c("EVTYPE","CROPDMG","CROPDMGEXP"))
updated.storm.crop$CROPDMGEXP <- gsub("B","1000000000",updated.storm.crop$CROPDMGEXP)
updated.storm.crop$CROPDMGEXP <- gsub("M","1000000",updated.storm.crop$CROPDMGEXP)
updated.storm.crop$CROPDMGEXP <- gsub("K","1000",updated.storm.crop$CROPDMGEXP)
updated.storm.crop$CROPDMGEXP <- as.numeric(updated.storm.crop$CROPDMGEXP)
## Warning: NAs introduced by coercion
updated.storm.crop$CROPDMGTOT <- updated.storm.crop$CROPDMG * updated.storm.crop$CROPDMGEXP
updated.storm.crop$EVTYPE<- toupper(updated.storm.crop$EVTYPE)
final.storm.crop <- aggregate(CROPDMGTOT~EVTYPE, data = updated.storm.crop , FUN=sum)
sort.subset.crop <- final.storm.crop[order(final.storm.crop$CROPDMGTOT),c(1,2)]
final.crop <- tail(sort.subset.crop,10)
final.crop
## EVTYPE CROPDMGTOT
## 33 FROST/FREEZE 1.094e+09
## 17 EXTREME COLD 1.313e+09
## 21 FLASH FLOOD 1.421e+09
## 65 HURRICANE/TYPHOON 2.608e+09
## 60 HURRICANE 2.742e+09
## 38 HAIL 3.026e+09
## 68 ICE STORM 5.022e+09
## 74 RIVER FLOOD 5.029e+09
## 25 FLOOD 5.662e+09
## 9 DROUGHT 1.397e+10
barplot(final.crop$CROPDMGTOT,names.arg=final.crop$EVTYPE,cex.names=0.5,col=c("red","yellow","light blue","green","orange","black","pink","purple","grey","brown"), main="TOP 10 Events by Crop Damage")
updated.storm.property$PROPDMGEXP <- gsub("B","1000000000",updated.storm.property$PROPDMGEXP)
updated.storm.property$PROPDMGEXP <- gsub("M","1000000",updated.storm.property$PROPDMGEXP)
updated.storm.property$PROPDMGEXP <- gsub("K","1000",updated.storm.property$PROPDMGEXP)
updated.storm.property$PROPDMGEXP <- as.numeric(updated.storm.property$PROPDMGEXP)
## Warning: NAs introduced by coercion
updated.storm.property$PROPDMGTOT <- updated.storm.property$PROPDMG * updated.storm.property$PROPDMGEXP
updated.storm.property$EVTYPE<- toupper(updated.storm.property$EVTYPE)
final.storm.property <- aggregate(PROPDMGTOT~EVTYPE, data = updated.storm.property, FUN=sum)
sort.subset.property <- final.storm.property[order(final.storm.property$PROPDMGTOT),c(1,2)]
final.property <- tail(sort.subset.property,10)
final.property
## EVTYPE PROPDMGTOT
## 142 HIGH WIND 5.270e+09
## 365 WINTER STORM 6.688e+09
## 312 TROPICAL STORM 7.704e+09
## 157 HURRICANE 1.187e+10
## 91 HAIL 1.573e+10
## 46 FLASH FLOOD 1.614e+10
## 256 STORM SURGE 4.332e+10
## 304 TORNADO 5.693e+10
## 165 HURRICANE/TYPHOON 6.931e+10
## 58 FLOOD 1.447e+11
mytable <- (final.property$PROPDMGTOT)
mytable2 <- round(mytable/sum(mytable),2)
colors <- c("red","yellow","light blue","green","orange","black","pink","purple","grey","brown")
pie(mytable2,main = "Property Damages Percentages",col=colors,labels=c("High Wind","Winter Storm","Tropical Storm","Hurricane","Hail","Flash Flood","Storm Surge","Tornado","Huricane/Typhoon","Flood"))