Synopsis

This project analyzes data provided by the U.S. National Oceanic and Atmospheric Administration’s (NOAA) storm database. The data provides information about fatalities, injuries, and property and crop damage from various storm types.

In this project, I first identify the storm events that lead to the top 100 fatalities and injuries. Next, I find the storm events that produce the top 100 property damage and crop damage costs, as well as the top 100 total damage costs.

Data Processing

loc <- "/Users/lilafakharzadeh/Desktop"
setwd(loc)
dat<-read.csv("repdata_data_StormData.csv",header=TRUE)
library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(plyr)
## -------------------------------------------------------------------------
## You have loaded plyr after dplyr - this is likely to cause problems.
## If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
## library(plyr); library(dplyr)
## -------------------------------------------------------------------------
## 
## Attaching package: 'plyr'
## The following objects are masked from 'package:dplyr':
## 
##     arrange, count, desc, failwith, id, mutate, rename, summarise,
##     summarize

Across the United States, which types of events (as indicated in the EVTYPE variable) are most harmful with respect to population health?

Top 100 Rankings by number of fatalities

countDatFat<-aggregate(dat$FATALITIES, by=list(dat$EVTYPE),FUN=sum)
orderCountDatFat<-head(countDatFat[order(-countDatFat$x),],100)

Top 100 Rankings by number of Injuries

countDatInj<-aggregate(dat$INJURIES, by=list(dat$EVTYPE),FUN=sum)
orderCountDatInj<-head(countDatInj[order(-countDatInj$x),],100)

Merge fatality and injury rankings

orderCountDatFat$Type<-"FATALITIES"
orderCountDatInj$Type<-"INJURIES"
mergedFatInj<-rbind(orderCountDatFat,orderCountDatInj)
print(mergedFatInj)
##                         Group.1     x       Type
## 834                     TORNADO  5633 FATALITIES
## 130              EXCESSIVE HEAT  1903 FATALITIES
## 153                 FLASH FLOOD   978 FATALITIES
## 275                        HEAT   937 FATALITIES
## 464                   LIGHTNING   816 FATALITIES
## 856                   TSTM WIND   504 FATALITIES
## 170                       FLOOD   470 FATALITIES
## 585                 RIP CURRENT   368 FATALITIES
## 359                   HIGH WIND   248 FATALITIES
## 19                    AVALANCHE   224 FATALITIES
## 972                WINTER STORM   206 FATALITIES
## 586                RIP CURRENTS   204 FATALITIES
## 278                   HEAT WAVE   172 FATALITIES
## 140                EXTREME COLD   160 FATALITIES
## 760           THUNDERSTORM WIND   133 FATALITIES
## 310                  HEAVY SNOW   127 FATALITIES
## 141     EXTREME COLD/WIND CHILL   125 FATALITIES
## 676                 STRONG WIND   103 FATALITIES
## 30                     BLIZZARD   101 FATALITIES
## 350                   HIGH SURF   101 FATALITIES
## 290                  HEAVY RAIN    98 FATALITIES
## 142                EXTREME HEAT    96 FATALITIES
## 79              COLD/WIND CHILL    95 FATALITIES
## 427                   ICE STORM    89 FATALITIES
## 957                    WILDFIRE    75 FATALITIES
## 411           HURRICANE/TYPHOON    64 FATALITIES
## 786          THUNDERSTORM WINDS    64 FATALITIES
## 188                         FOG    62 FATALITIES
## 402                   HURRICANE    61 FATALITIES
## 848              TROPICAL STORM    58 FATALITIES
## 342        HEAVY SURF/HIGH SURF    42 FATALITIES
## 442                   LANDSLIDE    38 FATALITIES
## 66                         COLD    35 FATALITIES
## 376                  HIGH WINDS    35 FATALITIES
## 877                     TSUNAMI    33 FATALITIES
## 978              WINTER WEATHER    33 FATALITIES
## 888   UNSEASONABLY WARM AND DRY    29 FATALITIES
## 919        URBAN/SML STREAM FLD    28 FATALITIES
## 980          WINTER WEATHER/MIX    28 FATALITIES
## 842  TORNADOES, TSTM WIND, HAIL    25 FATALITIES
## 960                        WIND    23 FATALITIES
## 117                  DUST STORM    22 FATALITIES
## 164              FLASH FLOODING    19 FATALITIES
## 89                    DENSE FOG    18 FATALITIES
## 146           EXTREME WINDCHILL    17 FATALITIES
## 177           FLOOD/FLASH FLOOD    17 FATALITIES
## 580       RECORD/EXCESSIVE HEAT    17 FATALITIES
## 244                        HAIL    15 FATALITIES
## 72                COLD AND SNOW    14 FATALITIES
## 161           FLASH FLOOD/FLOOD    14 FATALITIES
## 488          MARINE STRONG WIND    14 FATALITIES
## 670                 STORM SURGE    13 FATALITIES
## 955            WILD/FOREST FIRE    12 FATALITIES
## 671            STORM SURGE/TIDE    11 FATALITIES
## 886           UNSEASONABLY WARM    11 FATALITIES
## 489    MARINE THUNDERSTORM WIND    10 FATALITIES
## 976               WINTER STORMS    10 FATALITIES
## 490            MARINE TSTM WIND     9 FATALITIES
## 596                  ROUGH SEAS     8 FATALITIES
## 851       TROPICAL STORM GORDON     8 FATALITIES
## 201               FREEZING RAIN     7 FATALITIES
## 222                       GLAZE     7 FATALITIES
## 339                  HEAVY SURF     7 FATALITIES
## 480             LOW TEMPERATURE     7 FATALITIES
## 487               MARINE MISHAP     7 FATALITIES
## 680                STRONG WINDS     7 FATALITIES
## 185                    FLOODING     6 FATALITIES
## 405              HURRICANE ERIN     6 FATALITIES
## 417                         ICE     6 FATALITIES
## 77                 COLD WEATHER     5 FATALITIES
## 165        FLASH FLOODING/FLOOD     5 FATALITIES
## 280                  HEAT WAVES     5 FATALITIES
## 348                   HIGH SEAS     5 FATALITIES
## 435                   ICY ROADS     5 FATALITIES
## 588     RIP CURRENTS/HEAVY SURF     5 FATALITIES
## 629                        SNOW     5 FATALITIES
## 873              TSTM WIND/HAIL     5 FATALITIES
## 243                 GUSTY WINDS     4 FATALITIES
## 279           HEAT WAVE DROUGHT     4 FATALITIES
## 373              HIGH WIND/SEAS     4 FATALITIES
## 415        Hypothermia/Exposure     4 FATALITIES
## 517                    Mudslide     4 FATALITIES
## 544                   RAIN/SNOW     4 FATALITIES
## 597                  ROUGH SURF     4 FATALITIES
## 636                SNOW AND ICE     4 FATALITIES
## 54                COASTAL FLOOD     3 FATALITIES
## 60                COASTAL STORM     3 FATALITIES
## 65                         Cold     3 FATALITIES
## 76                    COLD WAVE     3 FATALITIES
## 101              DRY MICROBURST     3 FATALITIES
## 307                  HEAVY SEAS     3 FATALITIES
## 340         Heavy surf and wind     3 FATALITIES
## 349                   High Surf     3 FATALITIES
## 356                  HIGH WATER     3 FATALITIES
## 366          HIGH WIND AND SEAS     3 FATALITIES
## 395             HIGH WINDS/SNOW     3 FATALITIES
## 416        HYPOTHERMIA/EXPOSURE     3 FATALITIES
## 936                  WATERSPOUT     3 FATALITIES
## 943          WATERSPOUT/TORNADO     3 FATALITIES
## 954                  WILD FIRES     3 FATALITIES
## 8341                    TORNADO 91346   INJURIES
## 8561                  TSTM WIND  6957   INJURIES
## 1701                      FLOOD  6789   INJURIES
## 1301             EXCESSIVE HEAT  6525   INJURIES
## 4641                  LIGHTNING  5230   INJURIES
## 2751                       HEAT  2100   INJURIES
## 4271                  ICE STORM  1975   INJURIES
## 1531                FLASH FLOOD  1777   INJURIES
## 7601          THUNDERSTORM WIND  1488   INJURIES
## 2441                       HAIL  1361   INJURIES
## 9721               WINTER STORM  1321   INJURIES
## 4111          HURRICANE/TYPHOON  1275   INJURIES
## 3591                  HIGH WIND  1137   INJURIES
## 3101                 HEAVY SNOW  1021   INJURIES
## 9571                   WILDFIRE   911   INJURIES
## 7861         THUNDERSTORM WINDS   908   INJURIES
## 301                    BLIZZARD   805   INJURIES
## 1881                        FOG   734   INJURIES
## 9551           WILD/FOREST FIRE   545   INJURIES
## 1171                 DUST STORM   440   INJURIES
## 9781             WINTER WEATHER   398   INJURIES
## 891                   DENSE FOG   342   INJURIES
## 8481             TROPICAL STORM   340   INJURIES
## 2781                  HEAT WAVE   309   INJURIES
## 3761                 HIGH WINDS   302   INJURIES
## 5861               RIP CURRENTS   297   INJURIES
## 6761                STRONG WIND   280   INJURIES
## 2901                 HEAVY RAIN   251   INJURIES
## 5851                RIP CURRENT   232   INJURIES
## 1401               EXTREME COLD   231   INJURIES
## 2221                      GLAZE   216   INJURIES
## 191                   AVALANCHE   170   INJURIES
## 1421               EXTREME HEAT   155   INJURIES
## 3501                  HIGH SURF   152   INJURIES
## 9541                 WILD FIRES   150   INJURIES
## 4171                        ICE   137   INJURIES
## 8771                    TSUNAMI   129   INJURIES
## 8731             TSTM WIND/HAIL    95   INJURIES
## 9601                       WIND    86   INJURIES
## 9191       URBAN/SML STREAM FLD    79   INJURIES
## 984                  WINTRY MIX    77   INJURIES
## 9801         WINTER WEATHER/MIX    72   INJURIES
## 277                   Heat Wave    70   INJURIES
## 979          WINTER WEATHER MIX    68   INJURIES
## 4421                  LANDSLIDE    52   INJURIES
## 557                 RECORD HEAT    50   INJURIES
## 661                        COLD    48   INJURIES
## 3421       HEAVY SURF/HIGH SURF    48   INJURIES
## 4021                  HURRICANE    46   INJURIES
## 8511      TROPICAL STORM GORDON    43   INJURIES
## 115                  DUST DEVIL    42   INJURIES
## 9431         WATERSPOUT/TORNADO    42   INJURIES
## 3391                 HEAVY SURF    40   INJURIES
## 6701                STORM SURGE    38   INJURIES
## 656             SNOW/HIGH WINDS    36   INJURIES
## 645                 SNOW SQUALL    35   INJURIES
## 4351                  ICY ROADS    31   INJURIES
## 6291                       SNOW    29   INJURIES
## 9361                 WATERSPOUT    29   INJURIES
## 1011             DRY MICROBURST    28   INJURIES
## 821               THUNDERSTORMW    27   INJURIES
## 4891   MARINE THUNDERSTORM WIND    26   INJURIES
## 501                MIXED PRECIP    26   INJURIES
## 29                    BLACK ICE    24   INJURIES
## 1411    EXTREME COLD/WIND CHILL    24   INJURIES
## 2011              FREEZING RAIN    23   INJURIES
## 4881         MARINE STRONG WIND    22   INJURIES
## 134          EXCESSIVE RAINFALL    21   INJURIES
## 6801               STRONG WINDS    21   INJURIES
## 3661         HIGH WIND AND SEAS    20   INJURIES
## 8861          UNSEASONABLY WARM    17   INJURIES
## 9761              WINTER STORMS    17   INJURIES
## 838                  TORNADO F2    16   INJURIES
## 1771          FLOOD/FLASH FLOOD    15   INJURIES
## 195            FREEZING DRIZZLE    15   INJURIES
## 224             GLAZE/ICE STORM    15   INJURIES
## 2791          HEAT WAVE DROUGHT    15   INJURIES
## 973     WINTER STORM HIGH WINDS    15   INJURIES
## 44                 BLOWING SNOW    13   INJURIES
## 791             COLD/WIND CHILL    12   INJURIES
## 753                THUNDERSTORM    12   INJURIES
## 331              HEAVY SNOW/ICE    10   INJURIES
## 617                  SMALL HAIL    10   INJURIES
## 754         THUNDERSTORM  WINDS    10   INJURIES
## 1641             FLASH FLOODING     8   INJURIES
## 2431                GUSTY WINDS     8   INJURIES
## 3481                  HIGH SEAS     8   INJURIES
## 4901           MARINE TSTM WIND     8   INJURIES
## 526      NON-SEVERE WIND DAMAGE     7   INJURIES
## 3951            HIGH WINDS/SNOW     6   INJURIES
## 58     COASTAL FLOODING/EROSION     5   INJURIES
## 1461          EXTREME WINDCHILL     5   INJURIES
## 4871              MARINE MISHAP     5   INJURIES
## 5961                 ROUGH SEAS     5   INJURIES
## 6711           STORM SURGE/TIDE     5   INJURIES
## 879                     TYPHOON     5   INJURIES
## 95                      DROUGHT     4   INJURIES
## 305                 HEAVY RAINS     4   INJURIES
## 3491                  High Surf     4   INJURIES
## 392             HIGH WINDS/COLD     4   INJURIES

Across the United States, which types of events have the greatest economic consequences?

Calculate property and crop damage by multiplying by respective factors

tPROPDMG<- mapvalues(dat$PROPDMGEXP, c("K","M","","B","m","+","0","5","6","?","4","2","3","h","7","H","-","1","8"), 
c(1e3,1e6,1,1e9,1e6,1,1,1e5,1e6,1,1e4,1e2,1e3,1,1e7,1e2,1,10,1e8))

tCROPDMG <- mapvalues(dat$CROPDMGEXP,
c("","M","K","m","B","?","0","k","2"),
c( 1,1e6,1e3,1e6,1e9,1,1,1e3,1e2))

dat$PROPDMGTOTAL<- as.numeric(tPROPDMG)*dat$PROPDMG
dat$CROPDMGTOTAL<- as.numeric(tCROPDMG)*dat$CROPDMG

Calculate total damage

dat$DMGTOTAL<-dat$PROPDMGTOTAL + dat$CROPDMGTOTAL

Group damage by event type and calculate total

propDat<-aggregate(dat$PROPDMGTOTAL, by= list(dat$EVTYPE), FUN=sum)
propDat<-propDat[order(-propDat$x),][1:100,]

cropDat<-aggregate(dat$CROPDMGTOTAL, by= list(dat$EVTYPE), FUN=sum)
cropDat<-cropDat[order(-cropDat$x),][1:100,]

propCropDat<-aggregate(dat$DMGTOTAL, by=list(dat$EVTYPE), FUN=sum)
propCropDat<- propCropDat[order(-propCropDat$x),][1:100,]

Results

#Top 10 Storm Events that Produced The Most Fatalities
ggplot(orderCountDatFat[1:10,], aes(x=Group.1, y=x))+
geom_bar(stat="identity")+
theme(axis.text.x = element_text(angle = 90, hjust = 1))+
xlab("Event Type")+
ylab("Fatalities")+
ggtitle("Top 10 Fatalities by Event Type")

#Top 10 Storm Events that Produced The Most Injuries
ggplot(orderCountDatInj[1:10,], aes(x=Group.1, y=x))+
geom_bar(stat="identity")+
theme(axis.text.x = element_text(angle = 90, hjust = 1))+
xlab("Event Type")+
ylab("Injuries")+
ggtitle("Top 10 Injuries by Event Type")

#Top 10 Storm Events that Produced The Most Property/Crop Damage
ggplot(propCropDat[1:10,], aes(x=Group.1, y=x))+
geom_bar(stat="identity")+
theme(axis.text.x = element_text(angle = 90, hjust = 1))+
xlab("Event Type")+
ylab("Total Damage (Property + Crop)")+
ggtitle("Top Ten Event Types for Total Damage (Property + Crop)")