Author: Sheng Li Date: September 8, 2014
This report analyses the U.S. National Oceanic and Atmospheric Administration’s (NOAA) record of major storm and weather events and their resulting injuries, fatalities, property and crop damages. The analysis focuses on the records between Janaury 1996 and November 2011 because that is the period when NOAA began tracking the 48 official storm events. The records are carefully processed because of irregular labeling of the weather events by the officials, with the data manipulation methods detailed below. Once the processing is completed, I report tornados (22178), excessive heat (8261) and floods (7282) as the most harmful events with respect to population health based on their total resulting injuries and fatalities. Next, I report floods ($149 billion), hurricanes ($87 billions) and storm surges ($47 billions) as events that have the most devastating economic consequences from the net resulting property and crop damages. Finally, I list Texas (9978), Missouri (6493) and Alabama (4156) as the states that suffered the most victims from the weather events.
First, I load the data and examine the variables.
stormData <- read.table("/Users/chisli/Desktop/repdata-data-StormData.csv", fill=TRUE, sep=',', header=TRUE)
str(stormData$EVTYPE)
## Factor w/ 985 levels " HIGH SURF ADVISORY",..: 834 834 834 834 834 834 834 834 834 834 ...
There are 985 different event labels for the EVTYPE variable. Because the NOAA lists 48 official storm data events in page 6 of the accompanying Storm Data Preparation report, I will attempt to consolidate the different event labels as much as possible.
According to the NOAA website, only tornado events were recorded from 1950 through 1954, and only tornado, thunderstorm wind and hail events were collected from 1955 through 1996. Since the collection of all 48 event types began in 1996, this data analysis will only compare records with ‘BGN_DATE’ after January 1, 1996.
stormData$BGN_DATE <- as.Date(as.character(stormData$BGN_DATE), format = "%m/%d/%Y")
stormDataNew <- subset(stormData, BGN_DATE > as.Date("1996-01-01"))
stormDataNew <- droplevels(stormDataNew)
A quick examination of the EVTYPE variable in stormDataNew reveals that there are 515 EVTYPE labels because many of them are duplicates. For example, Thunderstorm wind could be labeled as “Thunderstorm Wind,” “THUNDERSTORM WIND,” “TSTM WIND” and “Tstm Wind.”
unique(stormDataNew$EVTYPE)
## [1] WINTER STORM TORNADO
## [3] TSTM WIND HAIL
## [5] HIGH WIND HEAVY RAIN
## [7] FLASH FLOOD FREEZING RAIN
## [9] EXTREME COLD EXCESSIVE HEAT
## [11] LIGHTNING FUNNEL CLOUD
## [13] EXTREME WINDCHILL BLIZZARD
## [15] URBAN/SML STREAM FLD FLOOD
## [17] TSTM WIND/HAIL WATERSPOUT
## [19] RIP CURRENTS HEAVY SNOW
## [21] Other Record dry month
## [23] Temperature record WILD/FOREST FIRE
## [25] Minor Flooding ICE STORM
## [27] STORM SURGE Ice jam flood (minor
## [29] High Wind DUST STORM
## [31] STRONG WIND DUST DEVIL
## [33] Tstm Wind DROUGHT
## [35] DRY MICROBURST FOG
## [37] ROUGH SURF Wind
## [39] THUNDERSTORMS Heavy Surf
## [41] HEAVY SURF Dust Devil
## [43] Wind Damage Marine Accident
## [45] Snow AVALANCHE
## [47] Freeze TROPICAL STORM
## [49] Snow Squalls Coastal Flooding
## [51] Heavy Rain Strong Wind
## [53] WINDS WIND
## [55] COASTAL FLOOD COASTAL STORM
## [57] COASTALFLOOD Erosion/Cstl Flood
## [59] Heavy Rain and Wind Light Snow/Flurries
## [61] Wet Month Wet Year
## [63] Tidal Flooding River Flooding
## [65] SNOW DAMAGING FREEZE
## [67] Damaging Freeze HURRICANE
## [69] Beach Erosion Hot and Dry
## [71] Flood/Flash Flood Icy Roads
## [73] High Surf Heavy Rain/High Surf
## [75] HIGH SURF Thunderstorm Wind
## [77] Rain Damage ICE JAM
## [79] Unseasonable Cold Early Frost
## [81] Wintry Mix blowing snow
## [83] STREET FLOODING Record Cold
## [85] Extreme Cold Ice Fog
## [87] Excessive Cold Torrential Rainfall
## [89] Freezing Rain Landslump
## [91] Late-season Snowfall Hurricane Edouard
## [93] Coastal Storm Flood
## [95] HEAVY RAIN/WIND TIDAL FLOODING
## [97] Winter Weather Snow squalls
## [99] Strong Winds Strong winds
## [101] RECORD WARM TEMPS. Ice/Snow
## [103] Mudslide Glaze
## [105] Extended Cold Snow Accumulation
## [107] Freezing Fog Drifting Snow
## [109] Whirlwind Heavy snow shower
## [111] Heavy rain COASTAL FLOODING
## [113] LATE SNOW Record May Snow
## [115] Record Winter Snow Heavy Precipitation
## [117] COASTAL FLOOD Record temperature
## [119] Light snow Late Season Snowfall
## [121] Gusty Wind small hail
## [123] Light Snow MIXED PRECIP
## [125] Black Ice Mudslides
## [127] Gradient wind Snow and Ice
## [129] COLD Freezing Spray
## [131] DOWNBURST Summary Jan 17
## [133] Summary of March 14 Summary of March 23
## [135] Summary of March 24 Summary of April 3rd
## [137] Summary of April 12 Summary of April 13
## [139] Summary of April 21 Summary August 11
## [141] Summary of April 27 Summary of May 9-10
## [143] Summary of May 10 Summary of May 13
## [145] Summary of May 14 Summary of May 22 am
## [147] Summary of May 22 pm Heatburst
## [149] Summary of May 26 am Summary of May 26 pm
## [151] Metro Storm, May 26 Summary of May 31 am
## [153] Summary of May 31 pm Summary of June 3
## [155] Summary of June 4 Summary June 5-6
## [157] Summary June 6 Summary of June 11
## [159] Summary of June 12 Summary of June 13
## [161] Summary of June 15 Summary of June 16
## [163] Summary June 18-19 Summary of June 23
## [165] Summary of June 24 Summary of June 30
## [167] Summary of July 2 Summary of July 3
## [169] Summary of July 11 Summary of July 22
## [171] Summary July 23-24 Summary of July 26
## [173] Summary of July 29 Summary of August 1
## [175] Summary August 2-3 Summary August 7
## [177] Summary August 9 Summary August 10
## [179] Summary August 17 Summary August 21
## [181] Summary August 28 Summary September 4
## [183] Summary September 20 Summary September 23
## [185] Summary Sept. 25-26 Summary: Oct. 20-21
## [187] Summary: October 31 Summary: Nov. 6-7
## [189] Summary: Nov. 16 Microburst
## [191] wet micoburst HAIL/WIND
## [193] Hail(0.75) Funnel Cloud
## [195] Urban Flooding No Severe Weather
## [197] Urban flood Urban Flood
## [199] Cold WINTER WEATHER
## [201] Summary of May 22 Summary of June 6
## [203] Summary August 4 Summary of June 10
## [205] Summary of June 18 Summary September 3
## [207] Summary: Sept. 18 Coastal Flood
## [209] coastal flooding Small Hail
## [211] Record Temperatures Light Snowfall
## [213] Freezing Drizzle Gusty wind/rain
## [215] GUSTY WIND/HVY RAIN Blowing Snow
## [217] Early snowfall Record Heat
## [219] Seasonal Snowfall Monthly Rainfall
## [221] Cold Temperature Sml Stream Fld
## [223] Heat Wave MUDSLIDE/LANDSLIDE
## [225] Saharan Dust Volcanic Ash
## [227] Volcanic Ash Plume Thundersnow shower
## [229] NONE COLD AND SNOW
## [231] DAM BREAK RAIN
## [233] RAIN/SNOW OTHER
## [235] FREEZE TSTM WIND (G45)
## [237] RECORD WARMTH STRONG WINDS
## [239] FREEZING DRIZZLE UNSEASONABLY WARM
## [241] SLEET/FREEZING RAIN BLACK ICE
## [243] WINTRY MIX BLOW-OUT TIDES
## [245] UNSEASONABLY COLD UNSEASONABLY COOL
## [247] TSTM HEAVY RAIN UNSEASONABLY DRY
## [249] Gusty Winds GUSTY WIND
## [251] TSTM WIND 40 TSTM WIND 45
## [253] HARD FREEZE TSTM WIND (41)
## [255] HEAT RIVER FLOOD
## [257] TSTM WIND (G40) RIP CURRENT
## [259] TSTM WND DENSE FOG
## [261] Wintry mix TSTM WIND
## [263] MUD SLIDE MUDSLIDES
## [265] MUDSLIDE Frost
## [267] Frost/Freeze SNOW AND ICE
## [269] WIND DAMAGE RAIN (HEAVY)
## [271] Record Warmth Prolong Cold
## [273] Cold and Frost RECORD COLD
## [275] PROLONG COLD AGRICULTURAL FREEZE
## [277] URBAN/SML STREAM FLDG SNOW SQUALL
## [279] HEAVY SNOW SQUALLS SNOW/ICE
## [281] GUSTY WINDS SMALL HAIL
## [283] SNOW SQUALLS LAKE EFFECT SNOW
## [285] STRONG WIND GUST LATE FREEZE
## [287] RECORD TEMPERATURES ICY ROADS
## [289] RECORD SNOWFALL BLOW-OUT TIDE
## [291] THUNDERSTORM Hypothermia/Exposure
## [293] HYPOTHERMIA/EXPOSURE Lake Effect Snow
## [295] Mixed Precipitation Record High
## [297] COASTALSTORM LIGHT SNOW
## [299] Snow and sleet Freezing rain
## [301] Gusty winds FUNNEL CLOUDS
## [303] WATERSPOUTS Blizzard Summary
## [305] FROST ICE
## [307] SUMMARY OF MARCH 24-25 SUMMARY OF MARCH 27
## [309] SUMMARY OF MARCH 29 GRADIENT WIND
## [311] Icestorm/Blizzard Flood/Strong Wind
## [313] TSTM WIND AND LIGHTNING gradient wind
## [315] SEVERE THUNDERSTORMS EXCESSIVE RAIN
## [317] Freezing drizzle Mountain Snows
## [319] URBAN/SMALL STRM FLDG WET MICROBURST
## [321] Heavy surf and wind Mild and Dry Pattern
## [323] COLD AND FROST RECORD HEAT
## [325] TYPHOON LANDSLIDES
## [327] HIGH SWELLS HIGH SWELLS
## [329] VOLCANIC ASH HIGH WINDS
## [331] DRY SPELL LIGHTNING
## [333] BEACH EROSION UNSEASONAL RAIN
## [335] EARLY RAIN PROLONGED RAIN
## [337] WINTERY MIX COASTAL FLOODING/EROSION
## [339] UNSEASONABLY WET HOT SPELL
## [341] HEAT WAVE UNSEASONABLY HOT
## [343] UNSEASONABLY WARM AND DRY TSTM WIND (G45)
## [345] TSTM WIND (G45) HIGH WIND (G40)
## [347] TSTM WIND (G35) DRY WEATHER
## [349] TSTM WINDS FREEZING RAIN/SLEET
## [351] ABNORMAL WARMTH UNUSUAL WARMTH
## [353] GLAZE WAKE LOW WIND
## [355] MONTHLY RAINFALL COLD TEMPERATURES
## [357] COLD WIND CHILL TEMPERATURES MODERATE SNOW
## [359] MODERATE SNOWFALL URBAN/STREET FLOODING
## [361] COASTAL EROSION UNUSUAL/RECORD WARMTH
## [363] BITTER WIND CHILL BITTER WIND CHILL TEMPERATURES
## [365] SEICHE TSTM
## [367] COASTAL FLOODING/EROSION SNOW DROUGHT
## [369] UNSEASONABLY WARM YEAR HYPERTHERMIA/EXPOSURE
## [371] SNOW/SLEET ROCK SLIDE
## [373] ICE PELLETS URBAN FLOOD
## [375] PATCHY DENSE FOG RECORD COOL
## [377] RECORD WARM HOT WEATHER
## [379] RIVER FLOODING RECORD TEMPERATURE
## [381] SAHARAN DUST TROPICAL DEPRESSION
## [383] VOLCANIC ERUPTION COOL SPELL
## [385] WIND ADVISORY GUSTY WIND/HAIL
## [387] RED FLAG FIRE WX FIRST FROST
## [389] EXCESSIVELY DRY HEAVY SEAS
## [391] FLASH FLOOD/FLOOD SNOW AND SLEET
## [393] LIGHT SNOW/FREEZING PRECIP VOG
## [395] EXCESSIVE RAINFALL FLASH FLOODING
## [397] MONTHLY PRECIPITATION MONTHLY TEMPERATURE
## [399] RECORD DRYNESS EXTREME WINDCHILL TEMPERATURES
## [401] MIXED PRECIPITATION EXTREME WIND CHILL
## [403] DRY CONDITIONS HEAVY RAINFALL
## [405] REMNANTS OF FLOYD EARLY SNOWFALL
## [407] FREEZING FOG LANDSPOUT
## [409] DRIEST MONTH RECORD COLD
## [411] LATE SEASON HAIL EXCESSIVE SNOW
## [413] WINTER MIX DRYNESS
## [415] FLOOD/FLASH/FLOOD WIND AND WAVE
## [417] SEVERE THUNDERSTORM LIGHT FREEZING RAIN
## [419] WIND MONTHLY SNOWFALL
## [421] DRY RECORD RAINFALL
## [423] RECORD PRECIPITATION ICE ROADS
## [425] HIGH SEAS SLEET
## [427] ROUGH SEAS UNSEASONABLY WARM/WET
## [429] UNSEASONABLY COOL & WET UNUSUALLY WARM
## [431] TSTM WIND G45 NON SEVERE HAIL
## [433] RECORD SNOW SNOW/FREEZING RAIN
## [435] SNOW/BLOWING SNOW NON-SEVERE WIND DAMAGE
## [437] UNUSUALLY COLD WARM WEATHER
## [439] LANDSLUMP THUNDERSTORM WIND (G40)
## [441] LANDSLIDE WALL CLOUD
## [443] HIGH WATER UNSEASONABLY WARM & WET
## [445] FLASH FLOOD LOCALLY HEAVY RAIN
## [447] WIND GUSTS UNSEASONAL LOW TEMP
## [449] HIGH SURF ADVISORY LATE SEASON SNOW
## [451] GUSTY LAKE WIND ABNORMALLY DRY
## [453] WINTER WEATHER MIX RED FLAG CRITERIA
## [455] WND CSTL FLOODING/EROSION
## [457] SMOKE WATERSPOUT
## [459] SNOW ADVISORY EXTREMELY WET
## [461] UNUSUALLY LATE SNOW VERY DRY
## [463] RECORD LOW RAINFALL ROGUE WAVE
## [465] SNOWMELT FLOODING PROLONG WARMTH
## [467] ACCUMULATED SNOWFALL FALLING SNOW/ICE
## [469] DUST DEVEL NON-TSTM WIND
## [471] NON TSTM WIND BRUSH FIRE
## [473] GUSTY THUNDERSTORM WINDS PATCHY ICE
## [475] SNOW SHOWERS HEAVY RAIN EFFECTS
## [477] BLOWING DUST EXCESSIVE HEAT/DROUGHT
## [479] NORTHERN LIGHTS MARINE TSTM WIND
## [481] HIGH SURF ADVISORY WIND CHILL
## [483] HAZARDOUS SURF WILDFIRE
## [485] FROST/FREEZE WINTER WEATHER/MIX
## [487] ASTRONOMICAL HIGH TIDE COLD WEATHER
## [489] WHIRLWIND VERY WARM
## [491] ABNORMALLY WET TORNADO DEBRIS
## [493] EXTREME COLD/WIND CHILL ICE ON ROAD
## [495] FIRST SNOW ICE/SNOW
## [497] DROWNING GUSTY THUNDERSTORM WIND
## [499] MARINE HAIL HIGH SURF ADVISORIES
## [501] HURRICANE/TYPHOON HEAVY SURF/HIGH SURF
## [503] SLEET STORM STORM SURGE/TIDE
## [505] COLD/WIND CHILL LAKE-EFFECT SNOW
## [507] MARINE HIGH WIND THUNDERSTORM WIND
## [509] TSUNAMI DENSE SMOKE
## [511] LAKESHORE FLOOD MARINE THUNDERSTORM WIND
## [513] MARINE STRONG WIND ASTRONOMICAL LOW TIDE
## [515] VOLCANIC ASHFALL
## 515 Levels: HIGH SURF ADVISORY COASTAL FLOOD ... WND
I will remove redundant white space, symbols, numbers, and event labels that began with “Summary.” I will then change the common abbreviations such as “TSTM” (Thunderstorm) and “CSTL” (Coastal) into their proper long form.
library(stringr)
stormDataNew$EVTYPE <- str_trim(toupper(as.character(stormDataNew$EVTYPE)))
stormDataNew$EVTYPE <- gsub("/|-", " ", stormDataNew$EVTYPE)
stormDataNew$EVTYPE <- gsub("& |\\.|\\(|\\)|,|[0-9]", "", stormDataNew$EVTYPE)
stormDataNew <- stormDataNew[!grepl("SUMMARY", stormDataNew$EVTYPE), ]
stormDataNew$EVTYPE <- str_trim(gsub(" G$| ", "", stormDataNew$EVTYPE))
eventAbbrvs <- c("TSTM", "CSTL", "SML", "FLD", "FLDG", "WND")
eventLong <- c("THUNDERSTORM", "COASTAL", "SMALL", "FLOOD", "FLOOD", "WIND")
for (i in 1:length(eventAbbrvs)) {
stormDataNew$EVTYPE <- gsub(eventAbbrvs[i], eventLong[i], stormDataNew$EVTYPE)
}
stormDataNew$EVTYPE <- as.factor(stormDataNew$EVTYPE)
The next round of consolidation will relabel the common variable names to fit the 48 official events. Some variable names have more than 30 occurrences but I ignored them because they do not fit into the official events. Examples of such labels are “LANDSLIDE,” “DRY MICROBURST” and “OTHER.” There are also many variable labels with only 1 or 2 occurrances which I ignored because of time constraint. However, this is insignificant to my analysis and will not skew the result because I only omitted about 500 observations out of 65,341 observations.
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="COASTAL FLOODING"] <- "COASTAL FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="UNSEASONABLY COLD"] <- "COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="PROLONG COLD"] <- "COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="UNSEASONAL LOW TEMP"] <- "COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="COLD WEATHER"] <- "COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="UNSEASONABLY DRY"] <- "DROUGHT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="ABNORMALLY DRY"] <- "DROUGHT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD WARMTH"] <- "EXCESSIVE HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="TEMPERATURE RECORD"] <- "EXCESSIVE HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD HEAT"] <- "EXCESSIVE HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD TEMPERATURE"] <- "EXCESSIVE HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="EXTREME COLD"] <- "EXTREME COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="EXTREME WINDCHILL"] <- "EXTREME COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="EXTREME WINDCHILL TEMPERATURES"] <- "EXTREME COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="URBAN SMALL STREAM FLOOD"] <- "FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RIVER FLOOD"] <- "FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="GLAZE"] <- "FROST FREEZE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="BLACK ICE"] <- "FROST FREEZE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="UNSEASONABLY WARM"] <- "HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="VERY WARM"] <- "HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HEAVY RAIN HIGH SURF"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HEAVY SURF HIGH SURF"] <- "HIGH SURF"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="ASTRONOMICAL HIGH TIDE"] <- "HIGH SURF"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HEAVY SURF"] <- "HIGH SURF"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="GUSTY WINDS"] <- "HIGH WIND"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HURRICANE TYPHOON"] <- "HURRICANE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RIP CURRENTS"] <- "RIP CURRENT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="MIXED PRECIPITATION"] <- "SLEET"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="STORM SURGE"] <- "STORM SURGE TIDE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="STRONG WINDS"] <- "STRONG WIND"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="THUNDERSTORM WIND HAIL"] <- "THUNDERSTORM WIND"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="WILD FOREST FIRE"] <- "WILDFIRE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="BRUSH FIRE"] <- "WILDFIRE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="WINTER WEATHER MIX"] <- "WINTER WEATHER"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="FREEZING RAIN"] <- "WINTER WEATHER"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="LIGHT SNOW"] <- "WINTER WEATHER"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="MODERATE SNOWFALL"] <- "WINTER WEATHER"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="WINTRY MIX"] <- "WINTER WEATHER"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="SMALL HAIL"] <- "WINTER WEATHER"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="LIGHT FREEZING RAIN"] <- "WINTER WEATHER"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="FREEZING DRIZZLE"] <- "WINTER WEATHER"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD COLD"] <- "EXTREME COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="ICY ROADS"] <- "FROST FREEZE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="EXCESSIVE SNOW"] <- "HEAVY SNOW"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="TIDAL FLOODING"] <- "COASTAL FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="GUSTY WIND"] <- "HIGH WIND"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="UNSEASONABLY WET"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="SNOW SQUALLS"] <- "BLIZZARD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="SLEET STORM"] <- "SLEET"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="UNSEASONABLY COOL"] <- "COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="UNSEASONABLY WARM AND DRY"] <- "HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD RAINFALL"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="MIXED PRECIP"] <- "SLEET"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="UNSEASONABLY HOT"] <- "HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="WIND DAMAGE"] <- "STRONG WIND"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="UNUSUALLY COLD"] <- "COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="COASTAL FLOODING EROSION"] <- "COASTAL FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="NON SEVERE HAIL"] <- "HAIL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RIVER FLOODING"] <- "FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="DRY CONDITIONS"] <- "DROUGHT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="FREEZING RAIN SLEET"] <- "SLEET"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HARD FREEZE"] <- "FROST FREEZE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HEAT WAVE"] <- "EXCESSIVE HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HYPOTHERMIA EXPOSURE"] <- "EXTREME COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="UNUSUAL WARMTH"] <- "HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="FUNNEL CLOUDS"] <- "FUNNEL CLOUD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="GUSTY THUNDERSTORM WINDS"] <- "THUNDERSTORM WIND"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HIGH SURF ADVISORY"] <- "HIGH SURF"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD COOL"] <- "EXTREME COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="SNOW AND SLEET"] <- "SLEET"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="DRY SPELL"] <- "DROUGHT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="DRY WEATHER"] <- "DROUGHT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HEAVY RAIN AND WIND"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HEAVY RAIN WIND"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="SNOW SLEET"] <- "SLEET"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="UNUSUALLY WARM"] <- "HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD TEMPERATURES"] <- "EXCESSIVE HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="COLD WIND CHILL TEMPERATURES"] <- "COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="SNOW DROUGHT"] <- "DROUGHT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="DAMAGING FREEZE"] <- "FROST FREEZE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="BITTER WIND CHILL TEMPERATURES"] <- "EXTREME COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="AGRICULTURAL FREEZE"] <- "FROST FREEZE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="SNOW FREEZING RAIN"] <- "SLEET"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="PROLONGED RAIN"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RAIN SNOW"] <- "SLEET"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="PROLONG WARMTH"] <- "EXCESSIVE HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="ROUGH SURF"] <- "HIGH SURF"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="ABNORMAL WARMTH"] <- "EXCESSIVE HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="SNOW SHOWERS"] <- "HEAVY SNOW"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="SNOW SQUALL"] <- "HEAVY SNOW"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HIGH SEAS"] <- "HIGH SURF"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="COLD AND FROST"] <- "FROST FREEZE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="PATCHY DENSE FOG"] <- "DENSE FOG"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="EXCESSIVE RAIN"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="TYPHOON"] <- "HURRICANE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="STREET FLOODING"] <- "FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="COLD TEMPERATURES"] <- "COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="URBAN FLOOD"] <- "FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="GUSTY THUNDERSTORM WIND"] <- "THUNDERSTORM WIND"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD WINTER SNOW"] <- "HEAVY SNOW"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="VOLCANIC ASHFALL"] <- "VOLCANIC ASH"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HIGH SURF ADVISORIES"] <- "HIGH SURF"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HIGH WATER"] <- "HIGH SURF"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="WARM WEATHER"] <- "HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD PRECIPITATION"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="EXCESSIVE RAINFALL"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="EXTREME WIND CHILL"] <- "EXTREME COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HOT WEATHER"] <- "HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="WINTERY MIX"] <- "WINTER WEATHER"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HIGH WINDS"] <- "HIGH WIND"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HEAVY SNOW SQUALLS"] <- "HEAVY SNOW"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="COLD TEMPERATURE"] <- "COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="DRIEST MONTH"] <- "DROUGHT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="WINTER MIX"] <- "WINTER WEATHER"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="DRYNESS"] <- "DROUGHT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="UNUSUAL RECORD WARMTH"] <- "EXCESSIVE HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HAIL WIND"] <- "HAIL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HURRICANE EDOUARD"] <- "HURRICANE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HEAVY SNOW SHOWER"] <- "HEAVY SNOW"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HEAVY PRECIPITATION"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD WARM TEMPS"] <- "EXCESSIVE HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="VERY DRY"] <- "DROUGHT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD SNOWFALL"] <- "HEAVY SNOW"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HYPERTHERMIA EXPOSURE"] <- "EXCESSIVE HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD WARM"] <- "EXCESSIVE HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="BITTER WIND CHILL"] <- "EXTREME COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HAZARDOUS SURF"] <- "HIGH SURF"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="DUST DEVEL"] <- "DUST DEVIL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RED FLAG FIRE WX"] <- "WILDFIRE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="FLASH FLOOD FLOOD"] <- "FLASH FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="FLASH FLOODING"] <- "FLASH FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HOT SPELL"] <- "HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="SNOW BLOWING SNOW"] <- "HEAVY SNOW"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="BLOWING SNOW"] <- "HEAVY SNOW"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="SNOW AND ICE"] <- "HEAVY SNOW"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="URBAN STREET FLOODING"] <- "FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="SNOWMELT FLOODING"] <- "FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HEAVY SURF AND WIND"] <- "HIGH SURF"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="STRONG WIND GUST"] <- "STRONG WIND"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="EARLY FROST"] <- "FROST FREEZE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORDCOLD"] <- "EXTREME COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="WIND GUSTS"] <- "STRONG WIND"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="FLOOD FLASH FLOOD"] <- "FLASH FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HEAVY RAINFALL"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="HOT AND DRY"] <- "HEAT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="ICE FOG"] <- "FREEZING FOG"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="ICE SNOW"] <- "HEAVY SNOW"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="EROSION COASTAL FLOOD"] <- "COASTAL FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="EXTREMELY WET"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="EXTENDED COLD"] <- "COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="UNSEASONABLE COLD"] <- "EXTREME COLD WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="URBAN FLOODING"] <- "FLOOD"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD MAY SNOW"] <- "HEAVY SNOW"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RECORD DRYNESS"] <- "DROUGHT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="EXCESSIVELY DRY"] <- "DROUGHT"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="GUSTY WIND HAIL"] <- "HAIL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RAIN DAMAGE"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="RAIN HEAVY"] <- "HEAVY RAIN"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="COLD"] <- "COLD/WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="WIND CHILL"] <- "COLD/WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="COLD WIND CHILL"] <- "COLD/WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="FREEZE"] <- "FROST/FREEZE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="FROST"] <- "FROST/FREEZE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="FROST FREEZE"] <- "FROST/FREEZE"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="EXTREME COLD WIND CHILL"] <- "EXTREME COLD/WIND CHILL"
levels(stormDataNew$EVTYPE)[levels(stormDataNew$EVTYPE)=="STORM SURGE TIDE"] <- "STORM SURGE/TIDE"
Once I have completed processing the EVTYPE variable, I calculate the harm to the overall population health by adding the total injuries and fatalities for each storm event type. I then calculate the economic consequences of the storm events by adding the total property damage and crop damage for each event type. In order to get the accurate economic expenses, it is important to convert the variables PROPDMG and CROPDMG into their proper amount from their units, where a null is $1, ‘K’ is $1000, ‘M’ is $1000,000 and ‘B’ is $1000,000,000.
library(sqldf)
## Loading required package: gsubfn
## Loading required package: proto
## Loading required package: RSQLite
## Loading required package: DBI
## Loading required package: RSQLite.extfuns
library(ggplot2)
library(tcltk)
unique(stormDataNew$PROPDMGEXP)
## [1] K M B 0
## Levels: 0 B K M
unique(stormDataNew$CROPDMGEXP)
## [1] K M B
## Levels: B K M
# Replace the null, K, M, and B with numerical values for multiplication
levels(stormDataNew$PROPDMGEXP)[levels(stormDataNew$PROPDMGEXP)==""] <- "1"
levels(stormDataNew$PROPDMGEXP)[levels(stormDataNew$PROPDMGEXP)=="K"] <- "1000"
levels(stormDataNew$PROPDMGEXP)[levels(stormDataNew$PROPDMGEXP)=="M"] <- "1000000"
levels(stormDataNew$PROPDMGEXP)[levels(stormDataNew$PROPDMGEXP)=="B"] <- "1000000000"
stormDataNew$PROPDMGEXP <- as.numeric(as.character(stormDataNew$PROPDMGEXP))
levels(stormDataNew$CROPDMGEXP)[levels(stormDataNew$CROPDMGEXP)==""] <- "1"
levels(stormDataNew$CROPDMGEXP)[levels(stormDataNew$CROPDMGEXP)=="K"] <- "1000"
levels(stormDataNew$CROPDMGEXP)[levels(stormDataNew$CROPDMGEXP)=="M"] <- "1000000"
levels(stormDataNew$CROPDMGEXP)[levels(stormDataNew$CROPDMGEXP)=="B"] <- "1000000000"
stormDataNew$CROPDMGEXP <- as.numeric(as.character(stormDataNew$CROPDMGEXP))
# Convert Property damage and Crop damage into their full amount
stormDataNew$PROPDMGFULL <- stormDataNew$PROPDMG * stormDataNew$PROPDMGEXP
stormDataNew$CROPDMGFULL <- stormDataNew$CROPDMG * stormDataNew$CROPDMGEXP
sortStormData <- sqldf('select EVTYPE, sum(FATALITIES) fatalities, sum(INJURIES) injuries, sum(FATALITIES+INJURIES) population_harm,
sum(PROPDMGFULL) property_damage, sum(CROPDMGFULL) crops_damage, sum(PROPDMGFULL+CROPDMGFULL) economic_cost
from stormDataNew
group by EVTYPE order by EVTYPE')
sortStates <- sqldf('select STATE, sum(FATALITIES) fatalities, sum(INJURIES) injuries, sum(FATALITIES+INJURIES) population_harm
from stormDataNew
group by STATE order by STATE')
# Select top 10 population harm and create a data frame for the plot
popnHarm <- sqldf('select EVTYPE, fatalities, injuries, population_harm
from sortStormData
where population_harm > 0
order by population_harm desc')
topHumDmg <- popnHarm[1:10,]
tolhumDmg <- sqldf('select EVTYPE evtype, population_harm, "Total" rtype from topHumDmg')
tolhumDmg <- rbind(tolhumDmg, sqldf('select EVTYPE evtype, fatalities population_harm, "Fatality" rtype from topHumDmg'))
tolhumDmg <- rbind(tolhumDmg, sqldf('select EVTYPE evtype, injuries population_harm, "Injury" rtype from topHumDmg'))
# Select top 10 economic cost and create a data frame for the plot
econCost <- sqldf('select EVTYPE, property_damage, crops_damage, economic_cost
from sortStormData
where economic_cost > 0
order by economic_cost desc')
topEconDmg <- econCost[1:10,]
toleconDmg <- sqldf('select EVTYPE evtype, economic_cost, "Total" rtype from topEconDmg')
toleconDmg <- rbind(toleconDmg, sqldf('select EVTYPE evtype, property_damage economic_cost, "Property Damage" rtype from topEconDmg'))
toleconDmg <- rbind(toleconDmg, sqldf('select EVTYPE evtype, crops_damage economic_cost, "Crop Damage" rtype from topEconDmg'))
# Select top 10 states that suffered the most population harm
statesHarm <- sqldf('select STATE, fatalities, injuries, population_harm
from sortStates
where population_harm > 0
order by population_harm desc')
topSTEDmg <- statesHarm[1:10,]
tolsteDmg <- sqldf('select STATE state, population_harm, "Total" rtype from topSTEDmg')
tolsteDmg <- rbind(tolsteDmg, sqldf('select STATE state, fatalities population_harm, "Fatality" rtype from topSTEDmg'))
tolsteDmg <- rbind(tolsteDmg, sqldf('select STATE state, injuries population_harm, "Injury" rtype from topSTEDmg'))
According to the calculations, tornados are the most harmful storm event type to the population health, causing 22178 fatalities and injuries between January 1996 and November 2011. This is followed by excessive heat and floods, with 8261 and 7282 total fatalities and injuries respectively.
topHumDmg
## EVTYPE fatalities injuries population_harm
## 1 TORNADO 1511 20667 22178
## 2 EXCESSIVE HEAT 1800 6461 8261
## 3 FLOOD 444 6838 7282
## 4 THUNDERSTORM WIND 378 5128 5506
## 5 LIGHTNING 650 4140 4790
## 6 FLASH FLOOD 887 1674 2561
## 7 WILDFIRE 87 1458 1545
## 8 WINTER STORM 191 1292 1483
## 9 HEAT 237 1241 1478
## 10 HURRICANE 125 1328 1453
ggplot(data=tolhumDmg, aes(x=evtype, y=population_harm, fill=factor(rtype))) +
ggtitle('Top 10 Population Harm from Storm Events (1996-2011)') +
geom_bar(position="dodge", stat="identity") + coord_flip() +
scale_x_discrete(limits=rev(topHumDmg$EVTYPE), name="Event") +
scale_y_continuous(name="Total Human Damages (per person)") +
theme(legend.title=element_blank(), legend.position=c(.75,.7))
On the other hand, floods have the costliest economic consequences between January 1996 and November 2011, with a net $149,142,741,700 property and crop damages. This is followed by hurricanes and storm surges with net $87,068,996,810 and $47,835,579,000 property and crop damages respectively.
topEconDmg
## EVTYPE property_damage crops_damage economic_cost
## 1 FLOOD 1.441e+11 5.013e+09 1.491e+11
## 2 HURRICANE 8.172e+10 5.350e+09 8.707e+10
## 3 STORM SURGE/TIDE 4.783e+10 8.550e+05 4.784e+10
## 4 TORNADO 2.462e+10 2.834e+08 2.490e+10
## 5 HAIL 1.460e+10 2.476e+09 1.707e+10
## 6 FLASH FLOOD 1.522e+10 1.335e+09 1.656e+10
## 7 DROUGHT 1.046e+09 1.337e+10 1.441e+10
## 8 THUNDERSTORM WIND 7.913e+09 1.017e+09 8.930e+09
## 9 TROPICAL STORM 7.642e+09 6.777e+08 8.320e+09
## 10 WILDFIRE 7.760e+09 4.023e+08 8.163e+09
ggplot(data=toleconDmg, aes(x=evtype, y=economic_cost, fill=factor(rtype))) +
ggtitle('Top 10 Economic Damages from Storm Events (1996-2011)') +
geom_bar(position="dodge", stat="identity") + coord_flip() +
scale_x_discrete(limits=rev(topEconDmg$EVTYPE), name="Event") +
scale_y_continuous(name="Total Economic Cost ($)") +
theme(legend.title=element_blank(), legend.position=c(.75,.7))
Among the states, Texas suffered the most population damages between January 1996 and November 2011, with 9978 total fatalities and injuries. Missouri and Alabama reported the next highest number of victims with 6493 and 4156 total fatalities and injuries respectively. Generally, the top 10 states that reported the most population harm are Southern or Midwestern states.
topSTEDmg
## STATE fatalities injuries population_harm
## 1 TX 756 9222 9978
## 2 MO 533 5960 6493
## 3 AL 449 3707 4156
## 4 FL 544 2884 3428
## 5 CA 498 2769 3267
## 6 TN 327 2385 2712
## 7 OK 219 2375 2594
## 8 PA 492 1450 1942
## 9 IL 586 1328 1914
## 10 AR 228 1656 1884
ggplot(data=tolsteDmg, aes(x=state, y=population_harm, fill=factor(rtype))) +
ggtitle('Top 10 States Suffering Population Damages from Storm Events (1996-2011)') +
geom_bar(position="dodge", stat="identity") + coord_flip() +
scale_x_discrete(limits=rev(topSTEDmg$STATE), name="STATE") +
scale_y_continuous(name="Total Human Damages (per person)") +
theme(legend.title=element_blank(), legend.position=c(.75,.7))