NOAA Storm Events Damage Analysis

Author: Sheng Li Date: September 8, 2014

Synopsis

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.

Data Processing

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"

Event Damage Calculations

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'))

Results

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))

plot of chunk unnamed-chunk-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))

plot of chunk unnamed-chunk-8

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))

plot of chunk unnamed-chunk-9