Storms and other severe weather events can cause both public health and economic problems for communities and municipalities. Many severe events can result in fatalities, injuries, and property damage, and preventing such outcomes to the extent possible is a key concern.
This project involves exploring the U.S. National Oceanic and Atmospheric Administration’s (NOAA) storm database[1-2]. This database tracks characteristics of major storms and weather events in the United States, including when and where they occur, as well as estimates of any fatalities, injuries, and property damage.
The basic goal of this reproducible analysis using R[3] is to explore the NOAA Storm Database and to assess which types of events (as are most harmful with respect to population health as well as which types of events have the greatest economic consequences across the United States. This report is a R markdown document that can be processed by knitr[4-6]. This report contain a summary (synopsis) and 3 figures.
The goal of this report is to describe the impact of severe weather events in the United States between the years 1950 and November 2011 on the population health and the economic consequences. This project involves exploring the U.S. National Oceanic and Atmospheric Administration’s (NOAA) storm database [1-2]. From these data for the United States between the years 1950 and 2011, we found that the types of climatic events which are most harmful with respect to population health are by far tornado follow by excessive heat, flood, heat for fatalities and thunderstorm wind, excessive heat and flood for injuries. The type of climatic events which have the greatest economic consequences are by far flood follow by hurricane, tornado and storm surge. We should keep in mind that in the earlier years of the database there are generally fewer events recorded, most likely due to a lack of good records. More recent years should be considered more complete.
The data set [1] for this project come in the form of a comma-separated-value file compressed via the bzip2 algorithm to reduce its size and you can download it from the link below:
There is also some documentation of the database available were you can find how some of the variables are constructed/defined. Unfortunately information about some special character used in the data couldn’t be found:
National Weather Service Storm Data Documentation
National Climatic Data Center Storm Events FAQ
Storm Data Export Format and Field names Storm Data Code Book
The data set from [1] can be be read as follows:
## optimize method for large dataset
# read the firt 10 lines
# ignore the comments
# get the class of each variables
data_10rows<- read.table("./repdata_data_StormData.csv",
header=TRUE, sep=",",nrows = 10)
# to have the correct class for some type of variables
classes<-sapply(data_10rows,class)
classes <- ifelse(classes =='integer', 'character', classes)
classes <- ifelse(classes == 'logical', 'character', classes)
## read the full dataset using the classes and ignore the comments
storm_database<- read.table("./repdata_data_StormData.csv",
header=TRUE, sep=",",
colClasses = classes, comment.char = "")
The libraries needed can be found in appendix I. There is a total of 902297 observations in this data set and 37 variables (see appendix III).
From the Storm Data Code Book with the list of the variables and their description (see also appendix II and see appendix III) we can extract as list of variables needed for our study:
| Variable name | Type | Length | Decimal | Comment |
|---|---|---|---|---|
| EVTYPE | Chr | 30 | 0 | Type of storm event. Similar storm events can be listed using different wording |
| FATALITIES | Num | 5 | 0 | Number directly killed |
| INJURIES | Num | 5 | 0 | Number directly injured |
| PROPDMG | Num | 6 | 2 | Property damage in whole numbers and hundredths |
| PROPDMGEXP | Chr | 1 | 0 | A multiplier where Hundred (H), Thousand (K), Million (M), Billion (B) |
| CROPDMG | Num | 6 | 2 | Crop damage in whole numbers and hundredths. |
| CROPDMGEXP | Chr | 1 | 0 | A multiplier where Hundred (H), Thousand (K), Million (M), Billion (B) |
A quick look at the variables:
# number of level
str(unique(storm_database$EVTYPE))
## Factor w/ 985 levels " HIGH SURF ADVISORY",..: 834 856 244 201 629 429 657 972 409 786 ...
# number of level
unique(storm_database$PROPDMGEXP)
## [1] K M B m + 0 5 6 ? 4 2 3 h 7 H - 1 8
## Levels: - ? + 0 1 2 3 4 5 6 7 8 B h H K m M
# number of level
unique(storm_database$CROPDMGEXP)
## [1] "" "M" "K" "m" "B" "?" "0" "k" "2"
indicate that EVTYPE is split in 985 level (see appendix VI) and need to be merge in few relevant categoriesbecause of different wording of the categories. Variables PROPDMGEXP and CROPDMGEXP contain other symbol than Hundred (H,h), Thousand (k, K), Million (M, m) and Billion (B) like 0~9, -, +,`and?` for which the exact meanings cannot be identified since it is not describe in the documentation.
We will just keep the 7 variables of interest mention in the previous section:
# select only the interesting variables
storm_database_subset <- storm_database[,c("EVTYPE", "FATALITIES", "INJURIES", "PROPDMG",
"PROPDMGEXP", "CROPDMG", "CROPDMGEXP")]
First we will put all letter in capital letter to avoid duplicating line of code later, remove extra white space in the string of character and remove data for which the variable EVTYPE contain SUMMARY since this is not a climatic event:
# transform all letter in capital letter
storm_database_subset$EVTYPE<-toupper(storm_database_subset$EVTYPE)
storm_database_subset$PROPDMGEXP<-toupper(storm_database_subset$PROPDMGEXP)
storm_database_subset$CROPDMGEXP<-toupper(storm_database_subset$CROPDMGEXP)
# remove removing leading/trailing whitespaces
storm_database_subset$EVTYPE<-trimws(storm_database_subset$EVTYPE)
# remove data for which the variable `EVTYPE` contain `SUMMARY` since this is not a climatic event
storm_database_subset <- storm_database_subset %>% filter(!grepl("SUMMARY",storm_database_subset$EVTYPE))
Since similar climatic events can be listed using different wording we try to regroup the one that seems to belong to the same categories following the official 48 NOOA categories but only for the most important variables. Without any other information there is many way to do it, below the one selected for this study:
# try to regroup similar group using different wording to get NOAA specified events
# storm
storm_database_subset$EVTYPE<-gsub("STORMS","STORM", storm_database_subset$EVTYPE)
# wind
storm_database_subset$EVTYPE<-gsub("TSTM", "THUNDERSTORM", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("^THUNDERSTORM$","THUNDERSTORM WIND", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("^TORNADOES, THUNDERSTORM WIND, HAIL$", "THUNDERSTORM WIND", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("^THUNDERSTORM WIND/HAIL$", "THUNDERSTORM WIND", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("^SEVERE THUNDERSTORM", "THUNDERSTORM WIND", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("WINDS", "WIND", storm_database_subset$EVTYPE)
# wild
storm_database_subset$EVTYPE<-gsub("WILD/FOREST ", "WILD", storm_database_subset$EVTYPE)
# flood
storm_database_subset$EVTYPE<-gsub("FLOOD/FLOOD$", "FLOOD", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("FLOOD & HEAVY RAIN$","FLOOD", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("FLOOD/RIVER FLOOD$","FLOOD", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("FLOODING$","FLOOD", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("URBAN/SML STREAM FLD","FLOOD", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("^RIVER FLOOD$","FLOOD", storm_database_subset$EVTYPE)
# flash flood
storm_database_subset$EVTYPE<-gsub("FLOOD/FLASH FLOOD$","FLASH FLOOD", storm_database_subset$EVTYPE)
# costal flood
storm_database_subset$EVTYPE<-gsub("COASTAL FLOODING$","COASTAL FLOOD", storm_database_subset$EVTYPE)
# excessive heat
storm_database_subset$EVTYPE<-gsub("EXTREME HEAT$", "EXCESSIVE HEAT", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("HEAT WAVE$", "EXCESSIVE HEAT", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("RECORD/HEAT$","EXCESSIVE HEAT", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("RECORD HEAT$","EXCESSIVE HEAT", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("RECORD/EXCESSIVE HEAT$","EXCESSIVE HEAT", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("UNSEASONABLY WARM$","EXCESSIVE HEAT", storm_database_subset$EVTYPE)
# drought
storm_database_subset$EVTYPE<-gsub("HEAT DROUGHT$","DROUGHT", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("DROUGHT/HEAT$","DROUGHT", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("UNSEASONABLY WARM AND DRY$","DROUGHT", storm_database_subset$EVTYPE)
# rip current
storm_database_subset$EVTYPE<-gsub("CURRENTS", "CURRENT", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("RIP CURRENT/HEAVY SURF$","RIP CURRENT", storm_database_subset$EVTYPE)
# extreme cold
storm_database_subset$EVTYPE<-gsub("EXTREME COLD$", "EXTREME COLD/WIND CHILL", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("EXTREME WINDCHILL$", "EXTREME COLD/WIND CHILL", storm_database_subset$EVTYPE)
# hurricane
storm_database_subset$EVTYPE<-gsub("HURRICANE/TYPHOON$", "HURRICANE", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("HURRICANE OPAL","HURRICANE", storm_database_subset$EVTYPE)
# surf
storm_database_subset$EVTYPE<-gsub("HEAVY SURF/HIGH SURF$", "HIGH SURF", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("HEAVY SURF$", "HIGH SURF", storm_database_subset$EVTYPE)
# winter weather
storm_database_subset$EVTYPE<-gsub("WINTER WEATHER/MIX$","WINTER WEATHER", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("COLD AND SNOW$","WINTER WEATHER", storm_database_subset$EVTYPE)
# dense fog
storm_database_subset$EVTYPE<-gsub("^FOG$", "DENSE FOG", storm_database_subset$EVTYPE)
# cold
storm_database_subset$EVTYPE<-gsub("^COLD$", "COLD/WIND CHILL", storm_database_subset$EVTYPE)
# wind
storm_database_subset$EVTYPE<-gsub("^WIND$", "STRONG WIND", storm_database_subset$EVTYPE)
# strom surge/tide
storm_database_subset$EVTYPE<-gsub("^STORM SURGE$","STORM SURGE/TIDE", storm_database_subset$EVTYPE)
# avalance
storm_database_subset$EVTYPE<-gsub("^LANDSLIDE$","AVALANCHE", storm_database_subset$EVTYPE)
# frost
storm_database_subset$EVTYPE<-gsub("^GLAZE$","FROST/FREEZE", storm_database_subset$EVTYPE)
storm_database_subset$EVTYPE<-gsub("^ICE$","FROST/FREEZE", storm_database_subset$EVTYPE)
# tropical storm
storm_database_subset$EVTYPE<-gsub("^TROPICAL STORM GORDON","TROPICAL STORM", storm_database_subset$EVTYPE)
# heavy rain
storm_database_subset$EVTYPE<-gsub("HEAVY RAIN/SEVERE WEATHER","HEAVY RAIN", storm_database_subset$EVTYPE)
We will now remove the unknown symbol from PROPDMGEXP and CROPDMGEXP variables:
# table of the symbol used
table(storm_database_subset$PROPDMGEXP)
##
## - ? + 0 1 2 3 4 5
## 465858 1 8 5 216 25 13 4 4 28
## 6 7 8 B H K M
## 4 5 1 40 7 424665 11337
# table of the symbol used
table(storm_database_subset$CROPDMGEXP)
##
## ? 0 2 B K M
## 618337 7 19 1 9 281853 1995
# replace symbol `0~9`, `-`, `+` and `?` by NA
index <- storm_database_subset$PROPDMGEXP %in% c("-", "?", "+", "0", "1", "2", "3", "4", "5", "6", "7", "8")
storm_database_subset$PROPDMGEXP[index] <- as.character(NA)
index <- storm_database_subset$CROPDMGEXP %in% c("-", "?", "+", "0", "1", "2", "3", "4", "5", "6", "7", "8")
storm_database_subset$CROPDMGEXP[index] <- as.character(NA)
# check that NA is correctely introduced
colSums(is.na(storm_database_subset))
## EVTYPE FATALITIES INJURIES PROPDMG PROPDMGEXP CROPDMG
## 0 0 0 0 314 0
## CROPDMGEXP
## 27
We will now replace the symbols by a numeric multiplier One(`), Hundred (H), Thousand (K), Million (M) and Billion (B`) and calculate a new variable to store the property damage in dollars for each observation:
# replace symbol by numeric multiplier
storm_database_subset$PROPDMGEXP[storm_database_subset$PROPDMGEXP %in% c("")] <- 10^0
storm_database_subset$PROPDMGEXP[storm_database_subset$PROPDMGEXP %in% c("H")] <- 10^2
storm_database_subset$PROPDMGEXP[storm_database_subset$PROPDMGEXP %in% c("K")] <- 10^3
storm_database_subset$PROPDMGEXP[storm_database_subset$PROPDMGEXP %in% c("M")] <- 10^6
storm_database_subset$PROPDMGEXP[storm_database_subset$PROPDMGEXP %in% c("B")] <- 10^9
# replace symbol by numeric multiplier
storm_database_subset$CROPDMGEXP[storm_database_subset$CROPDMGEXP %in% c("")] <- 10^0
storm_database_subset$CROPDMGEXP[storm_database_subset$CROPDMGEXP %in% c("H")] <- 10^2
storm_database_subset$CROPDMGEXP[storm_database_subset$CROPDMGEXP %in% c("K")] <- 10^3
storm_database_subset$CROPDMGEXP[storm_database_subset$CROPDMGEXP %in% c("M")] <- 10^6
storm_database_subset$CROPDMGEXP[storm_database_subset$CROPDMGEXP %in% c("B")] <- 10^9
# add a new variable to store the property damage in dollars
storm_database_subset <- mutate(storm_database_subset, PROPDMGCOST = PROPDMG * as.numeric(PROPDMGEXP))
storm_database_subset <- mutate(storm_database_subset, CROPDMGCOST = CROPDMG * as.numeric(CROPDMGEXP))
storm_database_subset <- mutate(storm_database_subset, TOTDMGCOST = PROPDMGCOST + CROPDMGCOST)
str(storm_database_subset)
## 'data.frame': 902221 obs. of 10 variables:
## $ EVTYPE : chr "TORNADO" "TORNADO" "TORNADO" "TORNADO" ...
## $ FATALITIES : num 0 0 0 0 0 0 0 0 1 0 ...
## $ INJURIES : num 15 0 2 2 2 6 1 0 14 0 ...
## $ PROPDMG : num 25 2.5 25 2.5 2.5 2.5 2.5 2.5 25 25 ...
## $ PROPDMGEXP : chr "1000" "1000" "1000" "1000" ...
## $ CROPDMG : num 0 0 0 0 0 0 0 0 0 0 ...
## $ CROPDMGEXP : chr "1" "1" "1" "1" ...
## $ PROPDMGCOST: num 25000 2500 25000 2500 2500 2500 2500 2500 25000 25000 ...
## $ CROPDMGCOST: num 0 0 0 0 0 0 0 0 0 0 ...
## $ TOTDMGCOST : num 25000 2500 25000 2500 2500 2500 2500 2500 25000 25000 ...
Now with our data set we will be able to address our questions on the impact of climatic events.
We start by computing the number of people directly killed during climate events and by selecting the top 20 climate events with the most important number of people directly killed:
# calculate the number of peope directly killed during climate events
storm_database_aggregate_fatalities<-aggregate(storm_database_subset$FATALITIES,
list(storm_database_subset$EVTYPE),sum)
names(storm_database_aggregate_fatalities)<-c("EVTYPE","FATALITIES")
# sort them by descending order
storm_database_aggregate_fatalities<-storm_database_aggregate_fatalities[with(storm_database_aggregate_fatalities,order(-FATALITIES)),]
# total number of people directly killed
total_fatalities<-sum(storm_database_aggregate_fatalities[,"FATALITIES"])
# selecting the top 20 climate events with the most important number of people directly killed
storm_database_aggregate_fatalities_20<-storm_database_aggregate_fatalities[1:20,]
storm_database_aggregate_fatalities_20$EVTYPE<-factor(storm_database_aggregate_fatalities_20$EVTYPE,
levels=unique(storm_database_aggregate_fatalities_20$EVTYPE))
# total number of people directly killed for the top 20 climate event
top_20_fatalities<-sum(storm_database_aggregate_fatalities_20[,"FATALITIES"])
We just check that the top 20 climate events represent a major fraction of the people killed:
# percentage of people directly killed represented by the top 20 climate events
round(top_20_fatalities/total_fatalities*100)
## [1] 95
The top 20 climate events represent 95 % of the people killed which is good enough for this study and are shown in Figure 1.
g <- ggplot(storm_database_aggregate_fatalities_20, aes(x=EVTYPE,y=FATALITIES))
g <- g + geom_histogram(stat="identity", color="red", fill="red")
g <- g + labs(x="Type of climatic event",
y="Total number of directly killed people",
title="Top 20 climatic events representing most of the people killed \n in the United States")
g <- g + theme_bw()
g <- g + theme(axis.text.x = element_text(angle = 45, hjust = 1))
g
Figure 1: Top 20 climatic events representing most of people killed in the United States between the years 1950 and 2011.
We will now compute the number of people directly injured during climate events and by selecting the top 20 climate events with the most important number of directly injured:
# Calculate the number of peope directly injured during climate events
storm_database_aggregate_injuries<-aggregate(storm_database_subset$INJURIES,
list(storm_database_subset$EVTYPE),sum)
names(storm_database_aggregate_injuries)<-c("EVTYPE","INJURIES")
# sort them by descending order
storm_database_aggregate_injuries<-storm_database_aggregate_injuries[with(storm_database_aggregate_injuries,order(-INJURIES)),]
# total number of people directly injured
total_injuries<-sum(storm_database_aggregate_injuries[,"INJURIES"])
# selecting the top 20 climate events with the most important number of people directly injured
storm_database_aggregate_injuries_20<-storm_database_aggregate_injuries[1:20,]
storm_database_aggregate_injuries_20$EVTYPE<-factor(storm_database_aggregate_injuries_20$EVTYPE,
levels=unique(storm_database_aggregate_injuries_20$EVTYPE))
# total number of people directly injured for the top 20 climate event
top_20_injuries<-sum(storm_database_aggregate_injuries_20[,"INJURIES"])
We just check that the top 20 climate events represent a major fraction of the people injured:
# percentage of people directly killed represented by the top 20 climate events
round(top_20_injuries/total_injuries*100)
## [1] 98
The top 20 climate events represent 98 % of the people injured which is good enough for this study and are shown in Figure 2.
g <- ggplot(storm_database_aggregate_injuries_20, aes(x=EVTYPE,y=INJURIES))
g <- g + geom_histogram(stat="identity", color="blue", fill="blue")
g <- g + labs(x="Type of climatic event",
y="Total number of directly injured people",
title="Top 20 climatic events representing most of the people injured \n in the United States")
g <- g + theme_bw()
g <- g + theme(axis.text.x = element_text(angle = 45, hjust = 1))
g
Figure 2: Top 20 climatic events representing most of people injured in the United States between the years 1950 and 2011.
Below a table with the top 5 climatic events representing a major fraction of the people killed:
table_killed<-storm_database_aggregate_fatalities[1:5,]
table_killed$Rank<-1:5
rownames(table_killed)<-NULL
kable(table_killed)
| EVTYPE | FATALITIES | Rank |
|---|---|---|
| TORNADO | 5633 | 1 |
| EXCESSIVE HEAT | 2201 | 2 |
| FLASH FLOOD | 1028 | 3 |
| HEAT | 937 | 4 |
| LIGHTNING | 816 | 5 |
Below a table with the top 5 climatic events representing a major fraction of the people injured:
table_injured<-storm_database_aggregate_injuries[1:5,]
table_injured$Rank<-1:5
rownames(table_injured)<-NULL
kable(table_injured)
| EVTYPE | INJURIES | Rank |
|---|---|---|
| TORNADO | 91346 | 1 |
| THUNDERSTORM WIND | 9461 | 2 |
| EXCESSIVE HEAT | 7126 | 3 |
| FLOOD | 6873 | 4 |
| LIGHTNING | 5230 | 5 |
In conclusion the types of climatic events which are most harmful with respect to population health in the United States between the years 1950 and 2011 are by far tornado follow by excessive heat, flood, heat for fatalities and thunderstorm wind, excessive heat and flood for injuries. The type of climatic events which have the greatest economic consequences are by far flood follow by hurricane, tornado and storm surge.
We start by computing the property damage, the crop damage and the total damage in dollars during climate events and by selecting the top 20 climate events with the most important total damage in dollar:
# calculate the property damage, the crop damage and the total damage in dollars during climate events
storm_database_aggregate_damage<-aggregate(cbind(TOTDMGCOST,PROPDMGCOST,CROPDMGCOST)~EVTYPE,
storm_database_subset,sum)
# sort them by descending order
storm_database_aggregate_damage<-storm_database_aggregate_damage[with(storm_database_aggregate_damage,order(-TOTDMGCOST)),]
# use billion of dollar
storm_database_aggregate_damage$TOTDMGCOST<-storm_database_aggregate_damage$TOTDMGCOST/1e9
storm_database_aggregate_damage$PROPDMGCOST<-storm_database_aggregate_damage$PROPDMGCOST/1e9
storm_database_aggregate_damage$CROPDMGCOST<-storm_database_aggregate_damage$CROPDMGCOST/1e9
# total damage
total_damage<-sum(storm_database_aggregate_damage[,"TOTDMGCOST"])
# selecting the top 20 climate events with the most impotant totat damage
storm_database_aggregate_damage_20<-storm_database_aggregate_damage[1:20,]
storm_database_aggregate_damage_20$EVTYPE<-factor(storm_database_aggregate_damage_20$EVTYPE,
levels=unique(storm_database_aggregate_damage_20$EVTYPE))
# total damage for the top 20 climate event
top_20_damage<-sum(storm_database_aggregate_damage_20[,"TOTDMGCOST"])
We just check that top 20 climate events represent a major fraction of the total damage:
# percentage of total damage represented by the top 20 climate events
round(top_20_damage/total_damage*100)
## [1] 99
The top 20 climate events represent 99 % of the total damage which is good enough for this study and are shown in Figure 3.
g <- ggplot(storm_database_aggregate_damage_20)
g <- g + geom_histogram(aes(y=TOTDMGCOST,x=EVTYPE, fill = "r", colour="r"),alpha = 0.6,stat="identity")
g <- g + geom_histogram(aes(y=CROPDMGCOST,x=EVTYPE,fill = "b", colour="b"),alpha = 0.8,stat="identity")
g <- g + geom_histogram(aes(y=PROPDMGCOST,x=EVTYPE,fill = "g", colour="g"),alpha = 0.6,stat="identity")
g <- g + scale_colour_manual(name="Damage (in billions of dollar)",
values=c("r" = "red", "b"="blue", "g"="green"),
labels=c("r"="Total=Crop+Property", "g"="Property","b"="Crop"))
g <- g + scale_fill_manual(name="Damage (in billions of dollar)",
values=c("r" = "red", "b"="blue", "g"="green"),
labels=c("r"="Total=Crop+Property", "g"="Property","b"="Crop"))
g <- g + labs(x="Type of climatic event",
y="Damages (in billion of dollars)",
title="Top 20 climatic events representing most of damage \n to the economy of the United States")
g <- g + theme_bw()
g <- g + theme(axis.text.x = element_text(angle = 45, hjust = 1))
g
Figure 3: Top 20 climatic events representing most of the damage (in billion of dollars) to the economy accross the United States between the years 1950 and 2011.
Below a table with the top 5 climatic events representing a major fraction of the total damage (in billion of dollars):
table_damage<-storm_database_aggregate_damage[1:5,]
table_damage$Rank<-1:5
rownames(table_damage)<-NULL
kable(table_damage)
| EVTYPE | TOTDMGCOST | PROPDMGCOST | CROPDMGCOST | Rank |
|---|---|---|---|---|
| FLOOD | 160.80681 | 150.07001 | 10.7367961 | 1 |
| HURRICANE | 89.71579 | 84.34700 | 5.3687828 | 2 |
| TORNADO | 57.30194 | 56.93699 | 0.3649501 | 3 |
| STORM SURGE/TIDE | 47.96558 | 47.96472 | 0.0008550 | 4 |
| HAIL | 18.73322 | 15.73226 | 3.0009545 | 5 |
In conclusion the types of climatic events which have the greatest economic consequences in the United States between the years 1950 and 2011 are by are by far flood follow by hurricane, tornado and storm surge.
From these data for the United States between the years 1950 and 2011, we found that the types of climatic events which are most harmful with respect to population health are by far tornado follow by excessive heat, flood, heat for fatalities and thunderstorm wind, excessive heat and flood for injuries. The type of climatic events which have the greatest economic consequences are by far flood follow by hurricane, tornado and storm surge. We should keep in mind that in the earlier years of the database there are generally fewer events recorded, most likely due to a lack of good records. More recent years should be considered more complete. This will not bias our study given the high statistic of climatic events but a different approach will be to just look at data between 1990 and 2011 for example. There is many other way to do this project. The study can be improve by having a accurate description of the variables available. For expert the sessionInfo can be found in Appendix V.
[1] Storm Data FAQ Page. Storm Events Database. National Climatic Data Center. Retrieved 2014-04-14.
[2] National Weather Service Instruction 10-1605 concerning Storm Data preparation, August 17, 2007
[3] R Core Team (2014), R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. http://www.R-project.org/.
[4] Yihui Xie (2015). knitr: A General-Purpose Package for Dynamic Report Generation in R. R package version 1.11.
[5] Yihui Xie (2015) Dynamic Documents with R and knitr. 2nd edition. Chapman and Hall/CRC. ISBN 978-1498716963
[6] Yihui Xie (2014) knitr: A Comprehensive Tool for Reproducible Research in R. In Victoria Stodden, Friedrich Leisch and Roger D. Peng, editors, Implementing Reproducible Computational Research. Chapman and Hall/CRC. ISBN 978-1466561595.
library(knitr, warn.conflicts = FALSE, quietly=TRUE)
library(ggplot2, warn.conflicts = FALSE, quietly=TRUE)
library(Rmisc, warn.conflicts = FALSE, quietly=TRUE)
library(dplyr, warn.conflicts = FALSE, quietly=TRUE)
head(data_10rows,3)
## STATE__ BGN_DATE BGN_TIME TIME_ZONE COUNTY COUNTYNAME STATE
## 1 1 4/18/1950 0:00:00 130 CST 97 MOBILE AL
## 2 1 4/18/1950 0:00:00 145 CST 3 BALDWIN AL
## 3 1 2/20/1951 0:00:00 1600 CST 57 FAYETTE AL
## EVTYPE BGN_RANGE BGN_AZI BGN_LOCATI END_DATE END_TIME COUNTY_END
## 1 TORNADO 0 NA NA NA NA 0
## 2 TORNADO 0 NA NA NA NA 0
## 3 TORNADO 0 NA NA NA NA 0
## COUNTYENDN END_RANGE END_AZI END_LOCATI LENGTH WIDTH F MAG FATALITIES
## 1 NA 0 NA NA 14.0 100 3 0 0
## 2 NA 0 NA NA 2.0 150 2 0 0
## 3 NA 0 NA NA 0.1 123 2 0 0
## INJURIES PROPDMG PROPDMGEXP CROPDMG CROPDMGEXP WFO STATEOFFIC ZONENAMES
## 1 15 25.0 K 0 NA NA NA NA
## 2 0 2.5 K 0 NA NA NA NA
## 3 2 25.0 K 0 NA NA NA NA
## LATITUDE LONGITUDE LATITUDE_E LONGITUDE_ REMARKS REFNUM
## 1 3040 8812 3051 8806 NA 1
## 2 3042 8755 0 0 NA 2
## 3 3340 8742 0 0 NA 3
tail(data_10rows,3)
## STATE__ BGN_DATE BGN_TIME TIME_ZONE COUNTY COUNTYNAME STATE
## 8 1 1/22/1952 0:00:00 900 CST 123 TALLAPOOSA AL
## 9 1 2/13/1952 0:00:00 2000 CST 125 TUSCALOOSA AL
## 10 1 2/13/1952 0:00:00 2000 CST 57 FAYETTE AL
## EVTYPE BGN_RANGE BGN_AZI BGN_LOCATI END_DATE END_TIME COUNTY_END
## 8 TORNADO 0 NA NA NA NA 0
## 9 TORNADO 0 NA NA NA NA 0
## 10 TORNADO 0 NA NA NA NA 0
## COUNTYENDN END_RANGE END_AZI END_LOCATI LENGTH WIDTH F MAG FATALITIES
## 8 NA 0 NA NA 0.0 33 1 0 0
## 9 NA 0 NA NA 3.3 100 3 0 1
## 10 NA 0 NA NA 2.3 100 3 0 0
## INJURIES PROPDMG PROPDMGEXP CROPDMG CROPDMGEXP WFO STATEOFFIC ZONENAMES
## 8 0 2.5 K 0 NA NA NA NA
## 9 14 25.0 K 0 NA NA NA NA
## 10 0 25.0 K 0 NA NA NA NA
## LATITUDE LONGITUDE LATITUDE_E LONGITUDE_ REMARKS REFNUM
## 8 3255 8558 0 0 NA 8
## 9 3334 8740 3336 8738 NA 9
## 10 3336 8738 3337 8737 NA 10
str(data_10rows)
## 'data.frame': 10 obs. of 37 variables:
## $ STATE__ : num 1 1 1 1 1 1 1 1 1 1
## $ BGN_DATE : Factor w/ 7 levels "1/22/1952 0:00:00",..: 6 6 5 7 2 2 3 1 4 4
## $ BGN_TIME : int 130 145 1600 900 1500 2000 100 900 2000 2000
## $ TIME_ZONE : Factor w/ 1 level "CST": 1 1 1 1 1 1 1 1 1 1
## $ COUNTY : num 97 3 57 89 43 77 9 123 125 57
## $ COUNTYNAME: Factor w/ 9 levels "BALDWIN","BLOUNT",..: 7 1 4 6 3 5 2 8 9 4
## $ STATE : Factor w/ 1 level "AL": 1 1 1 1 1 1 1 1 1 1
## $ EVTYPE : Factor w/ 1 level "TORNADO": 1 1 1 1 1 1 1 1 1 1
## $ BGN_RANGE : num 0 0 0 0 0 0 0 0 0 0
## $ BGN_AZI : logi NA NA NA NA NA NA ...
## $ BGN_LOCATI: logi NA NA NA NA NA NA ...
## $ END_DATE : logi NA NA NA NA NA NA ...
## $ END_TIME : logi NA NA NA NA NA NA ...
## $ COUNTY_END: num 0 0 0 0 0 0 0 0 0 0
## $ COUNTYENDN: logi NA NA NA NA NA NA ...
## $ END_RANGE : num 0 0 0 0 0 0 0 0 0 0
## $ END_AZI : logi NA NA NA NA NA NA ...
## $ END_LOCATI: logi NA NA NA NA NA NA ...
## $ LENGTH : num 14 2 0.1 0 0 1.5 1.5 0 3.3 2.3
## $ WIDTH : num 100 150 123 100 150 177 33 33 100 100
## $ F : int 3 2 2 2 2 2 2 1 3 3
## $ MAG : num 0 0 0 0 0 0 0 0 0 0
## $ FATALITIES: num 0 0 0 0 0 0 0 0 1 0
## $ INJURIES : num 15 0 2 2 2 6 1 0 14 0
## $ PROPDMG : num 25 2.5 25 2.5 2.5 2.5 2.5 2.5 25 25
## $ PROPDMGEXP: Factor w/ 1 level "K": 1 1 1 1 1 1 1 1 1 1
## $ CROPDMG : num 0 0 0 0 0 0 0 0 0 0
## $ CROPDMGEXP: logi NA NA NA NA NA NA ...
## $ WFO : logi NA NA NA NA NA NA ...
## $ STATEOFFIC: logi NA NA NA NA NA NA ...
## $ ZONENAMES : logi NA NA NA NA NA NA ...
## $ LATITUDE : num 3040 3042 3340 3458 3412 ...
## $ LONGITUDE : num 8812 8755 8742 8626 8642 ...
## $ LATITUDE_E: num 3051 0 0 0 0 ...
## $ LONGITUDE_: num 8806 0 0 0 0 ...
## $ REMARKS : logi NA NA NA NA NA NA ...
## $ REFNUM : num 1 2 3 4 5 6 7 8 9 10
head(storm_database,3)
## STATE__ BGN_DATE BGN_TIME TIME_ZONE COUNTY COUNTYNAME STATE
## 1 1 4/18/1950 0:00:00 0130 CST 97 MOBILE AL
## 2 1 4/18/1950 0:00:00 0145 CST 3 BALDWIN AL
## 3 1 2/20/1951 0:00:00 1600 CST 57 FAYETTE AL
## EVTYPE BGN_RANGE BGN_AZI BGN_LOCATI END_DATE END_TIME COUNTY_END
## 1 TORNADO 0 0
## 2 TORNADO 0 0
## 3 TORNADO 0 0
## COUNTYENDN END_RANGE END_AZI END_LOCATI LENGTH WIDTH F MAG FATALITIES
## 1 0 14.0 100 3 0 0
## 2 0 2.0 150 2 0 0
## 3 0 0.1 123 2 0 0
## INJURIES PROPDMG PROPDMGEXP CROPDMG CROPDMGEXP WFO STATEOFFIC ZONENAMES
## 1 15 25.0 K 0
## 2 0 2.5 K 0
## 3 2 25.0 K 0
## LATITUDE LONGITUDE LATITUDE_E LONGITUDE_ REMARKS REFNUM
## 1 3040 8812 3051 8806 1
## 2 3042 8755 0 0 2
## 3 3340 8742 0 0 3
str(storm_database)
## 'data.frame': 902297 obs. of 37 variables:
## $ STATE__ : num 1 1 1 1 1 1 1 1 1 1 ...
## $ BGN_DATE : Factor w/ 16335 levels "1/1/1966 0:00:00",..: 6523 6523 4242 11116 2224 2224 2260 383 3980 3980 ...
## $ BGN_TIME : chr "0130" "0145" "1600" "0900" ...
## $ TIME_ZONE : Factor w/ 22 levels "ADT","AKS","AST",..: 7 7 7 7 7 7 7 7 7 7 ...
## $ COUNTY : num 97 3 57 89 43 77 9 123 125 57 ...
## $ COUNTYNAME: Factor w/ 29601 levels "","5NM E OF MACKINAC BRIDGE TO PRESQUE ISLE LT MI",..: 13513 1873 4598 10592 4372 10094 1973 23873 24418 4598 ...
## $ STATE : Factor w/ 72 levels "AK","AL","AM",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ EVTYPE : Factor w/ 985 levels " HIGH SURF ADVISORY",..: 834 834 834 834 834 834 834 834 834 834 ...
## $ BGN_RANGE : num 0 0 0 0 0 0 0 0 0 0 ...
## $ BGN_AZI : chr "" "" "" "" ...
## $ BGN_LOCATI: chr "" "" "" "" ...
## $ END_DATE : chr "" "" "" "" ...
## $ END_TIME : chr "" "" "" "" ...
## $ COUNTY_END: num 0 0 0 0 0 0 0 0 0 0 ...
## $ COUNTYENDN: chr "" "" "" "" ...
## $ END_RANGE : num 0 0 0 0 0 0 0 0 0 0 ...
## $ END_AZI : chr "" "" "" "" ...
## $ END_LOCATI: chr "" "" "" "" ...
## $ LENGTH : num 14 2 0.1 0 0 1.5 1.5 0 3.3 2.3 ...
## $ WIDTH : num 100 150 123 100 150 177 33 33 100 100 ...
## $ F : chr "3" "2" "2" "2" ...
## $ MAG : num 0 0 0 0 0 0 0 0 0 0 ...
## $ FATALITIES: num 0 0 0 0 0 0 0 0 1 0 ...
## $ INJURIES : num 15 0 2 2 2 6 1 0 14 0 ...
## $ PROPDMG : num 25 2.5 25 2.5 2.5 2.5 2.5 2.5 25 25 ...
## $ PROPDMGEXP: Factor w/ 19 levels "","-","?","+",..: 17 17 17 17 17 17 17 17 17 17 ...
## $ CROPDMG : num 0 0 0 0 0 0 0 0 0 0 ...
## $ CROPDMGEXP: chr "" "" "" "" ...
## $ WFO : chr "" "" "" "" ...
## $ STATEOFFIC: chr "" "" "" "" ...
## $ ZONENAMES : chr "" "" "" "" ...
## $ LATITUDE : num 3040 3042 3340 3458 3412 ...
## $ LONGITUDE : num 8812 8755 8742 8626 8642 ...
## $ LATITUDE_E: num 3051 0 0 0 0 ...
## $ LONGITUDE_: num 8806 0 0 0 0 ...
## $ REMARKS : chr "" "" "" "" ...
## $ REFNUM : num 1 2 3 4 5 6 7 8 9 10 ...
EVTYPE variableunique(storm_database$EVTYPE)
## [1] TORNADO TSTM WIND
## [3] HAIL FREEZING RAIN
## [5] SNOW ICE STORM/FLASH FLOOD
## [7] SNOW/ICE WINTER STORM
## [9] HURRICANE OPAL/HIGH WINDS THUNDERSTORM WINDS
## [11] RECORD COLD HURRICANE ERIN
## [13] HURRICANE OPAL HEAVY RAIN
## [15] LIGHTNING THUNDERSTORM WIND
## [17] DENSE FOG RIP CURRENT
## [19] THUNDERSTORM WINS FLASH FLOOD
## [21] FLASH FLOODING HIGH WINDS
## [23] FUNNEL CLOUD TORNADO F0
## [25] THUNDERSTORM WINDS LIGHTNING THUNDERSTORM WINDS/HAIL
## [27] HEAT WIND
## [29] LIGHTING HEAVY RAINS
## [31] LIGHTNING AND HEAVY RAIN FUNNEL
## [33] WALL CLOUD FLOODING
## [35] THUNDERSTORM WINDS HAIL FLOOD
## [37] COLD HEAVY RAIN/LIGHTNING
## [39] FLASH FLOODING/THUNDERSTORM WI WALL CLOUD/FUNNEL CLOUD
## [41] THUNDERSTORM WATERSPOUT
## [43] EXTREME COLD HAIL 1.75)
## [45] LIGHTNING/HEAVY RAIN HIGH WIND
## [47] BLIZZARD BLIZZARD WEATHER
## [49] WIND CHILL BREAKUP FLOODING
## [51] HIGH WIND/BLIZZARD RIVER FLOOD
## [53] HEAVY SNOW FREEZE
## [55] COASTAL FLOOD HIGH WIND AND HIGH TIDES
## [57] HIGH WIND/BLIZZARD/FREEZING RA HIGH TIDES
## [59] HIGH WIND AND HEAVY SNOW RECORD COLD AND HIGH WIND
## [61] RECORD HIGH TEMPERATURE RECORD HIGH
## [63] HIGH WINDS HEAVY RAINS HIGH WIND/ BLIZZARD
## [65] ICE STORM BLIZZARD/HIGH WIND
## [67] HIGH WIND/LOW WIND CHILL HEAVY SNOW/HIGH
## [69] RECORD LOW HIGH WINDS AND WIND CHILL
## [71] HEAVY SNOW/HIGH WINDS/FREEZING LOW TEMPERATURE RECORD
## [73] AVALANCHE MARINE MISHAP
## [75] WIND CHILL/HIGH WIND HIGH WIND/WIND CHILL/BLIZZARD
## [77] HIGH WIND/WIND CHILL HIGH WIND/HEAVY SNOW
## [79] HIGH TEMPERATURE RECORD FLOOD WATCH/
## [81] RECORD HIGH TEMPERATURES HIGH WIND/SEAS
## [83] HIGH WINDS/HEAVY RAIN HIGH SEAS
## [85] SEVERE TURBULENCE RECORD RAINFALL
## [87] RECORD SNOWFALL RECORD WARMTH
## [89] HEAVY SNOW/WIND EXTREME HEAT
## [91] WIND DAMAGE DUST STORM
## [93] APACHE COUNTY SLEET
## [95] HAIL STORM FUNNEL CLOUDS
## [97] FLASH FLOODS DUST DEVIL
## [99] EXCESSIVE HEAT THUNDERSTORM WINDS/FUNNEL CLOU
## [101] WINTER STORM/HIGH WIND WINTER STORM/HIGH WINDS
## [103] GUSTY WINDS STRONG WINDS
## [105] FLOODING/HEAVY RAIN SNOW AND WIND
## [107] HEAVY SURF COASTAL FLOODING HEAVY SURF
## [109] HEAVY PRECIPATATION URBAN FLOODING
## [111] HIGH SURF BLOWING DUST
## [113] URBAN/SMALL WILD FIRES
## [115] HIGH URBAN/SMALL FLOODING
## [117] WATER SPOUT HIGH WINDS DUST STORM
## [119] WINTER STORM HIGH WINDS LOCAL FLOOD
## [121] WINTER STORMS MUDSLIDES
## [123] RAINSTORM SEVERE THUNDERSTORM
## [125] SEVERE THUNDERSTORMS SEVERE THUNDERSTORM WINDS
## [127] THUNDERSTORMS WINDS DRY MICROBURST
## [129] FLOOD/FLASH FLOOD FLOOD/RAIN/WINDS
## [131] WINDS DRY MICROBURST 61
## [133] THUNDERSTORMS FLASH FLOOD WINDS
## [135] URBAN/SMALL STREAM FLOODING MICROBURST
## [137] STRONG WIND HIGH WIND DAMAGE
## [139] STREAM FLOODING URBAN AND SMALL
## [141] HEAVY SNOWPACK ICE
## [143] FLASH FLOOD/ DOWNBURST
## [145] GUSTNADO AND FLOOD/RAIN/WIND
## [147] WET MICROBURST DOWNBURST WINDS
## [149] DRY MICROBURST WINDS DRY MIRCOBURST WINDS
## [151] DRY MICROBURST 53 SMALL STREAM URBAN FLOOD
## [153] MICROBURST WINDS HIGH WINDS 57
## [155] DRY MICROBURST 50 HIGH WINDS 66
## [157] HIGH WINDS 76 HIGH WINDS 63
## [159] HIGH WINDS 67 BLIZZARD/HEAVY SNOW
## [161] HEAVY SNOW/HIGH WINDS BLOWING SNOW
## [163] HIGH WINDS 82 HIGH WINDS 80
## [165] HIGH WINDS 58 FREEZING DRIZZLE
## [167] LIGHTNING THUNDERSTORM WINDSS DRY MICROBURST 58
## [169] HAIL 75 HIGH WINDS 73
## [171] HIGH WINDS 55 LIGHT SNOW AND SLEET
## [173] URBAN FLOOD DRY MICROBURST 84
## [175] THUNDERSTORM WINDS 60 HEAVY RAIN/FLOODING
## [177] THUNDERSTORM WINDSS TORNADOS
## [179] GLAZE RECORD HEAT
## [181] COASTAL FLOODING HEAT WAVE
## [183] FIRST SNOW FREEZING RAIN AND SLEET
## [185] UNSEASONABLY DRY UNSEASONABLY WET
## [187] WINTRY MIX WINTER WEATHER
## [189] UNSEASONABLY COLD EXTREME/RECORD COLD
## [191] RIP CURRENTS HEAVY SURF SLEET/RAIN/SNOW
## [193] UNSEASONABLY WARM DROUGHT
## [195] NORMAL PRECIPITATION HIGH WINDS/FLOODING
## [197] DRY RAIN/SNOW
## [199] SNOW/RAIN/SLEET WATERSPOUT/TORNADO
## [201] WATERSPOUTS WATERSPOUT TORNADO
## [203] URBAN/SMALL STREAM FLOOD STORM SURGE
## [205] WATERSPOUT-TORNADO WATERSPOUT-
## [207] TORNADOES, TSTM WIND, HAIL TROPICAL STORM ALBERTO
## [209] TROPICAL STORM TROPICAL STORM GORDON
## [211] TROPICAL STORM JERRY LIGHTNING THUNDERSTORM WINDS
## [213] WAYTERSPOUT MINOR FLOODING
## [215] LIGHTNING INJURY URBAN/SMALL STREAM FLOOD
## [217] LIGHTNING AND THUNDERSTORM WIN THUNDERSTORM WINDS53
## [219] URBAN AND SMALL STREAM FLOOD URBAN AND SMALL STREAM
## [221] WILDFIRE DAMAGING FREEZE
## [223] THUNDERSTORM WINDS 13 SMALL HAIL
## [225] HEAVY SNOW/HIGH WIND HURRICANE
## [227] WILD/FOREST FIRE SMALL STREAM FLOODING
## [229] MUD SLIDE LIGNTNING
## [231] FROST FREEZING RAIN/SNOW
## [233] HIGH WINDS/ THUNDERSNOW
## [235] FLOODS EXTREME WIND CHILLS
## [237] COOL AND WET HEAVY RAIN/SNOW
## [239] SMALL STREAM AND URBAN FLOODIN SMALL STREAM/URBAN FLOOD
## [241] SNOW/SLEET/FREEZING RAIN SEVERE COLD
## [243] GLAZE ICE COLD WAVE
## [245] EARLY SNOW SMALL STREAM AND URBAN FLOOD
## [247] HIGH WINDS RURAL FLOOD
## [249] SMALL STREAM AND MUD SLIDES
## [251] HAIL 80 EXTREME WIND CHILL
## [253] COLD AND WET CONDITIONS EXCESSIVE WETNESS
## [255] GRADIENT WINDS HEAVY SNOW/BLOWING SNOW
## [257] SLEET/ICE STORM THUNDERSTORM WINDS URBAN FLOOD
## [259] THUNDERSTORM WINDS SMALL STREA ROTATING WALL CLOUD
## [261] LARGE WALL CLOUD COLD AIR FUNNEL
## [263] GUSTNADO COLD AIR FUNNELS
## [265] BLOWING SNOW- EXTREME WIND CHI SNOW AND HEAVY SNOW
## [267] GROUND BLIZZARD MAJOR FLOOD
## [269] SNOW/HEAVY SNOW FREEZING RAIN/SLEET
## [271] ICE JAM FLOODING SNOW- HIGH WIND- WIND CHILL
## [273] STREET FLOOD COLD AIR TORNADO
## [275] SMALL STREAM FLOOD FOG
## [277] THUNDERSTORM WINDS 2 FUNNEL CLOUD/HAIL
## [279] ICE/SNOW TSTM WIND 51
## [281] TSTM WIND 50 TSTM WIND 52
## [283] TSTM WIND 55 HEAVY SNOW/BLIZZARD
## [285] THUNDERSTORM WINDS 61 HAIL 0.75
## [287] THUNDERSTORM DAMAGE THUNDERTORM WINDS
## [289] HAIL 1.00 HAIL/WINDS
## [291] SNOW AND ICE WIND STORM
## [293] SNOWSTORM GRASS FIRES
## [295] LAKE FLOOD PROLONG COLD
## [297] HAIL/WIND HAIL 1.75
## [299] THUNDERSTORMW 50 WIND/HAIL
## [301] SNOW AND ICE STORM URBAN AND SMALL STREAM FLOODIN
## [303] THUNDERSTORMS WIND THUNDERSTORM WINDS
## [305] HEAVY SNOW/SLEET AGRICULTURAL FREEZE
## [307] DROUGHT/EXCESSIVE HEAT TUNDERSTORM WIND
## [309] TROPICAL STORM DEAN THUNDERTSORM WIND
## [311] THUNDERSTORM WINDS/ HAIL THUNDERSTORM WIND/LIGHTNING
## [313] HEAVY RAIN/SEVERE WEATHER THUNDESTORM WINDS
## [315] WATERSPOUT/ TORNADO LIGHTNING.
## [317] WARM DRY CONDITIONS HURRICANE-GENERATED SWELLS
## [319] HEAVY SNOW/ICE STORM RIVER AND STREAM FLOOD
## [321] HIGH WIND 63 COASTAL SURGE
## [323] HEAVY SNOW AND ICE STORM MINOR FLOOD
## [325] HIGH WINDS/COASTAL FLOOD RAIN
## [327] RIVER FLOODING SNOW/RAIN
## [329] ICE FLOES HIGH WAVES
## [331] SNOW SQUALLS SNOW SQUALL
## [333] THUNDERSTORM WIND G50 LIGHTNING FIRE
## [335] BLIZZARD/FREEZING RAIN HEAVY LAKE SNOW
## [337] HEAVY SNOW/FREEZING RAIN LAKE EFFECT SNOW
## [339] HEAVY WET SNOW DUST DEVIL WATERSPOUT
## [341] THUNDERSTORM WINDS/HEAVY RAIN THUNDERSTROM WINDS
## [343] THUNDERSTORM WINDS LE CEN HAIL 225
## [345] BLIZZARD AND HEAVY SNOW HEAVY SNOW AND ICE
## [347] ICE STORM AND SNOW HEAVY SNOW ANDBLOWING SNOW
## [349] HEAVY SNOW/ICE BLIZZARD AND EXTREME WIND CHIL
## [351] LOW WIND CHILL BLOWING SNOW & EXTREME WIND CH
## [353] WATERSPOUT/ URBAN/SMALL STREAM
## [355] TORNADO F3 FUNNEL CLOUD.
## [357] TORNDAO HAIL 0.88
## [359] FLOOD/RIVER FLOOD MUD SLIDES URBAN FLOODING
## [361] TORNADO F1 THUNDERSTORM WINDS G
## [363] DEEP HAIL GLAZE/ICE STORM
## [365] HEAVY SNOW/WINTER STORM AVALANCE
## [367] BLIZZARD/WINTER STORM DUST STORM/HIGH WINDS
## [369] ICE JAM FOREST FIRES
## [371] THUNDERSTORM WIND G60 FROST\\FREEZE
## [373] THUNDERSTORM WINDS. HAIL 88
## [375] HAIL 175 HVY RAIN
## [377] HAIL 100 HAIL 150
## [379] HAIL 075 THUNDERSTORM WIND G55
## [381] HAIL 125 THUNDERSTORM WINDS G60
## [383] HARD FREEZE HAIL 200
## [385] THUNDERSTORM WINDS FUNNEL CLOU THUNDERSTORM WINDS 62
## [387] WILDFIRES RECORD HEAT WAVE
## [389] HEAVY SNOW AND HIGH WINDS HEAVY SNOW/HIGH WINDS & FLOOD
## [391] HAIL FLOODING THUNDERSTORM WINDS/FLASH FLOOD
## [393] HIGH WIND 70 WET SNOW
## [395] HEAVY RAIN AND FLOOD LOCAL FLASH FLOOD
## [397] THUNDERSTORM WINDS 53 FLOOD/FLASH FLOODING
## [399] TORNADO/WATERSPOUT RAIN AND WIND
## [401] THUNDERSTORM WIND 59 THUNDERSTORM WIND 52
## [403] COASTAL/TIDAL FLOOD SNOW/ICE STORM
## [405] BELOW NORMAL PRECIPITATION RIP CURRENTS/HEAVY SURF
## [407] FLASH FLOOD/FLOOD EXCESSIVE RAIN
## [409] RECORD/EXCESSIVE HEAT HEAT WAVES
## [411] LIGHT SNOW THUNDERSTORM WIND 69
## [413] HAIL DAMAGE LIGHTNING DAMAGE
## [415] RECORD TEMPERATURES LIGHTNING AND WINDS
## [417] FOG AND COLD TEMPERATURES OTHER
## [419] RECORD SNOW SNOW/COLD
## [421] FLASH FLOOD FROM ICE JAMS TSTM WIND G58
## [423] MUDSLIDE HEAVY SNOW SQUALLS
## [425] HEAVY SNOW/SQUALLS HEAVY SNOW-SQUALLS
## [427] ICY ROADS HEAVY MIX
## [429] SNOW FREEZING RAIN LACK OF SNOW
## [431] SNOW/SLEET SNOW/FREEZING RAIN
## [433] SNOW DROUGHT THUNDERSTORMW WINDS
## [435] THUNDERSTORM WIND 60 MPH THUNDERSTORM WIND 65MPH
## [437] THUNDERSTORM WIND/ TREES THUNDERSTORM WIND/AWNING
## [439] THUNDERSTORM WIND 98 MPH THUNDERSTORM WIND TREES
## [441] TORRENTIAL RAIN TORNADO F2
## [443] RIP CURRENTS HURRICANE EMILY
## [445] HURRICANE GORDON HURRICANE FELIX
## [447] THUNDERSTORM WIND 59 MPH THUNDERSTORM WINDS 63 MPH
## [449] THUNDERSTORM WIND/ TREE THUNDERSTORM DAMAGE TO
## [451] THUNDERSTORM WIND 65 MPH FLASH FLOOD - HEAVY RAIN
## [453] THUNDERSTORM WIND. FLASH FLOOD/ STREET
## [455] THUNDERSTORM WIND 59 MPH. HEAVY SNOW FREEZING RAIN
## [457] DAM FAILURE THUNDERSTORM HAIL
## [459] HAIL 088 THUNDERSTORM WINDSHAIL
## [461] LIGHTNING WAUSEON THUDERSTORM WINDS
## [463] ICE AND SNOW RECORD COLD/FROST
## [465] STORM FORCE WINDS FREEZING RAIN AND SNOW
## [467] FREEZING RAIN SLEET AND SOUTHEAST
## [469] HEAVY SNOW & ICE FREEZING DRIZZLE AND FREEZING
## [471] THUNDERSTORM WINDS AND HAIL/ICY ROADS
## [473] FLASH FLOOD/HEAVY RAIN HEAVY RAIN; URBAN FLOOD WINDS;
## [475] HEAVY PRECIPITATION TSTM WIND DAMAGE
## [477] HIGH WATER FLOOD FLASH
## [479] RAIN/WIND THUNDERSTORM WINDS 50
## [481] THUNDERSTORM WIND G52 FLOOD FLOOD/FLASH
## [483] THUNDERSTORM WINDS 52 SNOW SHOWERS
## [485] THUNDERSTORM WIND G51 HEAT WAVE DROUGHT
## [487] HEAVY SNOW/BLIZZARD/AVALANCHE RECORD SNOW/COLD
## [489] WET WEATHER UNSEASONABLY WARM AND DRY
## [491] FREEZING RAIN SLEET AND LIGHT RECORD/EXCESSIVE RAINFALL
## [493] TIDAL FLOOD BEACH EROSIN
## [495] THUNDERSTORM WIND G61 FLOOD/FLASH
## [497] LOW TEMPERATURE SLEET & FREEZING RAIN
## [499] HEAVY RAINS/FLOODING THUNDERESTORM WINDS
## [501] THUNDERSTORM WINDS/FLOODING THUNDEERSTORM WINDS
## [503] HIGHWAY FLOODING THUNDERSTORM W INDS
## [505] HYPOTHERMIA FLASH FLOOD/ FLOOD
## [507] THUNDERSTORM WIND 50 THUNERSTORM WINDS
## [509] HEAVY RAIN/MUDSLIDES/FLOOD MUD/ROCK SLIDE
## [511] HIGH WINDS/COLD BEACH EROSION/COASTAL FLOOD
## [513] COLD/WINDS SNOW/ BITTER COLD
## [515] THUNDERSTORM WIND 56 SNOW SLEET
## [517] DRY HOT WEATHER COLD WEATHER
## [519] RAPIDLY RISING WATER HAIL ALOFT
## [521] EARLY FREEZE ICE/STRONG WINDS
## [523] EXTREME WIND CHILL/BLOWING SNO SNOW/HIGH WINDS
## [525] HIGH WINDS/SNOW EARLY FROST
## [527] SNOWMELT FLOODING HEAVY SNOW AND STRONG WINDS
## [529] SNOW ACCUMULATION BLOWING SNOW/EXTREME WIND CHIL
## [531] SNOW/ ICE SNOW/BLOWING SNOW
## [533] TORNADOES THUNDERSTORM WIND/HAIL
## [535] FLASH FLOODING/FLOOD HAIL 275
## [537] HAIL 450 FLASH FLOOODING
## [539] EXCESSIVE RAINFALL THUNDERSTORMW
## [541] HAILSTORM TSTM WINDS
## [543] BEACH FLOOD HAILSTORMS
## [545] TSTMW FUNNELS
## [547] TSTM WIND 65) THUNDERSTORM WINDS/ FLOOD
## [549] HEAVY RAINFALL HEAT/DROUGHT
## [551] HEAT DROUGHT NEAR RECORD SNOW
## [553] LANDSLIDE HIGH WIND AND SEAS
## [555] THUNDERSTORMWINDS THUNDERSTORM WINDS HEAVY RAIN
## [557] SLEET/SNOW EXCESSIVE
## [559] SNOW/SLEET/RAIN WILD/FOREST FIRES
## [561] HEAVY SEAS DUSTSTORM
## [563] FLOOD & HEAVY RAIN ?
## [565] THUNDERSTROM WIND FLOOD/FLASHFLOOD
## [567] SNOW AND COLD HOT PATTERN
## [569] PROLONG COLD/SNOW BRUSH FIRES
## [571] SNOW\\COLD WINTER MIX
## [573] EXCESSIVE PRECIPITATION SNOWFALL RECORD
## [575] HOT/DRY PATTERN DRY PATTERN
## [577] MILD/DRY PATTERN MILD PATTERN
## [579] LANDSLIDES HEAVY SHOWERS
## [581] HEAVY SNOW AND HIGH WIND 48
## [583] LAKE-EFFECT SNOW BRUSH FIRE
## [585] WATERSPOUT FUNNEL CLOUD URBAN SMALL STREAM FLOOD
## [587] SAHARAN DUST HEAVY SHOWER
## [589] URBAN FLOOD LANDSLIDE HEAVY SWELLS
## [591] URBAN SMALL URBAN FLOODS
## [593] SMALL STREAM HEAVY RAIN/URBAN FLOOD
## [595] FLASH FLOOD/LANDSLIDE LANDSLIDE/URBAN FLOOD
## [597] HEAVY RAIN/SMALL STREAM URBAN FLASH FLOOD LANDSLIDES
## [599] EXTREME WINDCHILL URBAN/SML STREAM FLD
## [601] TSTM WIND/HAIL Other
## [603] Record dry month Temperature record
## [605] Minor Flooding Ice jam flood (minor
## [607] High Wind Tstm Wind
## [609] ROUGH SURF Wind
## [611] Heavy Surf Dust Devil
## [613] Wind Damage Marine Accident
## [615] Snow Freeze
## [617] Snow Squalls Coastal Flooding
## [619] Heavy Rain Strong Wind
## [621] COASTAL STORM COASTALFLOOD
## [623] Erosion/Cstl Flood Heavy Rain and Wind
## [625] Light Snow/Flurries Wet Month
## [627] Wet Year Tidal Flooding
## [629] River Flooding Damaging Freeze
## [631] Beach Erosion Hot and Dry
## [633] Flood/Flash Flood Icy Roads
## [635] High Surf Heavy Rain/High Surf
## [637] Thunderstorm Wind Rain Damage
## [639] Unseasonable Cold Early Frost
## [641] Wintry Mix blowing snow
## [643] STREET FLOODING Record Cold
## [645] Extreme Cold Ice Fog
## [647] Excessive Cold Torrential Rainfall
## [649] Freezing Rain Landslump
## [651] Late-season Snowfall Hurricane Edouard
## [653] Coastal Storm Flood
## [655] HEAVY RAIN/WIND TIDAL FLOODING
## [657] Winter Weather Snow squalls
## [659] Strong Winds Strong winds
## [661] RECORD WARM TEMPS. Ice/Snow
## [663] Mudslide Glaze
## [665] Extended Cold Snow Accumulation
## [667] Freezing Fog Drifting Snow
## [669] Whirlwind Heavy snow shower
## [671] Heavy rain LATE SNOW
## [673] Record May Snow Record Winter Snow
## [675] Heavy Precipitation COASTAL FLOOD
## [677] Record temperature Light snow
## [679] Late Season Snowfall Gusty Wind
## [681] small hail Light Snow
## [683] MIXED PRECIP Black Ice
## [685] Mudslides Gradient wind
## [687] Snow and Ice Freezing Spray
## [689] Summary Jan 17 Summary of March 14
## [691] Summary of March 23 Summary of March 24
## [693] Summary of April 3rd Summary of April 12
## [695] Summary of April 13 Summary of April 21
## [697] Summary August 11 Summary of April 27
## [699] Summary of May 9-10 Summary of May 10
## [701] Summary of May 13 Summary of May 14
## [703] Summary of May 22 am Summary of May 22 pm
## [705] Heatburst Summary of May 26 am
## [707] Summary of May 26 pm Metro Storm, May 26
## [709] Summary of May 31 am Summary of May 31 pm
## [711] Summary of June 3 Summary of June 4
## [713] Summary June 5-6 Summary June 6
## [715] Summary of June 11 Summary of June 12
## [717] Summary of June 13 Summary of June 15
## [719] Summary of June 16 Summary June 18-19
## [721] Summary of June 23 Summary of June 24
## [723] Summary of June 30 Summary of July 2
## [725] Summary of July 3 Summary of July 11
## [727] Summary of July 22 Summary July 23-24
## [729] Summary of July 26 Summary of July 29
## [731] Summary of August 1 Summary August 2-3
## [733] Summary August 7 Summary August 9
## [735] Summary August 10 Summary August 17
## [737] Summary August 21 Summary August 28
## [739] Summary September 4 Summary September 20
## [741] Summary September 23 Summary Sept. 25-26
## [743] Summary: Oct. 20-21 Summary: October 31
## [745] Summary: Nov. 6-7 Summary: Nov. 16
## [747] Microburst wet micoburst
## [749] Hail(0.75) Funnel Cloud
## [751] Urban Flooding No Severe Weather
## [753] Urban flood Urban Flood
## [755] Cold Summary of May 22
## [757] Summary of June 6 Summary August 4
## [759] Summary of June 10 Summary of June 18
## [761] Summary September 3 Summary: Sept. 18
## [763] Coastal Flood coastal flooding
## [765] Small Hail Record Temperatures
## [767] Light Snowfall Freezing Drizzle
## [769] Gusty wind/rain GUSTY WIND/HVY RAIN
## [771] Blowing Snow Early snowfall
## [773] Monthly Snowfall Record Heat
## [775] Seasonal Snowfall Monthly Rainfall
## [777] Cold Temperature Sml Stream Fld
## [779] Heat Wave MUDSLIDE/LANDSLIDE
## [781] Saharan Dust Volcanic Ash
## [783] Volcanic Ash Plume Thundersnow shower
## [785] NONE COLD AND SNOW
## [787] DAM BREAK TSTM WIND (G45)
## [789] SLEET/FREEZING RAIN BLACK ICE
## [791] BLOW-OUT TIDES UNSEASONABLY COOL
## [793] TSTM HEAVY RAIN Gusty Winds
## [795] GUSTY WIND TSTM WIND 40
## [797] TSTM WIND 45 TSTM WIND (41)
## [799] TSTM WIND (G40) TSTM WND
## [801] Wintry mix TSTM WIND
## [803] Frost Frost/Freeze
## [805] RAIN (HEAVY) Record Warmth
## [807] Prolong Cold Cold and Frost
## [809] URBAN/SML STREAM FLDG STRONG WIND GUST
## [811] LATE FREEZE BLOW-OUT TIDE
## [813] Hypothermia/Exposure HYPOTHERMIA/EXPOSURE
## [815] Lake Effect Snow Mixed Precipitation
## [817] Record High COASTALSTORM
## [819] Snow and sleet Freezing rain
## [821] Gusty winds Blizzard Summary
## [823] SUMMARY OF MARCH 24-25 SUMMARY OF MARCH 27
## [825] SUMMARY OF MARCH 29 GRADIENT WIND
## [827] Icestorm/Blizzard Flood/Strong Wind
## [829] TSTM WIND AND LIGHTNING gradient wind
## [831] Freezing drizzle Mountain Snows
## [833] URBAN/SMALL STRM FLDG Heavy surf and wind
## [835] Mild and Dry Pattern COLD AND FROST
## [837] TYPHOON HIGH SWELLS
## [839] HIGH SWELLS VOLCANIC ASH
## [841] DRY SPELL LIGHTNING
## [843] BEACH EROSION UNSEASONAL RAIN
## [845] EARLY RAIN PROLONGED RAIN
## [847] WINTERY MIX COASTAL FLOODING/EROSION
## [849] HOT SPELL UNSEASONABLY HOT
## [851] TSTM WIND (G45) TSTM WIND (G45)
## [853] HIGH WIND (G40) TSTM WIND (G35)
## [855] DRY WEATHER ABNORMAL WARMTH
## [857] UNUSUAL WARMTH WAKE LOW WIND
## [859] MONTHLY RAINFALL COLD TEMPERATURES
## [861] COLD WIND CHILL TEMPERATURES MODERATE SNOW
## [863] MODERATE SNOWFALL URBAN/STREET FLOODING
## [865] COASTAL EROSION UNUSUAL/RECORD WARMTH
## [867] BITTER WIND CHILL BITTER WIND CHILL TEMPERATURES
## [869] SEICHE TSTM
## [871] COASTAL FLOODING/EROSION UNSEASONABLY WARM YEAR
## [873] HYPERTHERMIA/EXPOSURE ROCK SLIDE
## [875] ICE PELLETS PATCHY DENSE FOG
## [877] RECORD COOL RECORD WARM
## [879] HOT WEATHER RECORD TEMPERATURE
## [881] TROPICAL DEPRESSION VOLCANIC ERUPTION
## [883] COOL SPELL WIND ADVISORY
## [885] GUSTY WIND/HAIL RED FLAG FIRE WX
## [887] FIRST FROST EXCESSIVELY DRY
## [889] SNOW AND SLEET LIGHT SNOW/FREEZING PRECIP
## [891] VOG MONTHLY PRECIPITATION
## [893] MONTHLY TEMPERATURE RECORD DRYNESS
## [895] EXTREME WINDCHILL TEMPERATURES MIXED PRECIPITATION
## [897] DRY CONDITIONS REMNANTS OF FLOYD
## [899] EARLY SNOWFALL FREEZING FOG
## [901] LANDSPOUT DRIEST MONTH
## [903] RECORD COLD LATE SEASON HAIL
## [905] EXCESSIVE SNOW DRYNESS
## [907] FLOOD/FLASH/FLOOD WIND AND WAVE
## [909] LIGHT FREEZING RAIN WIND
## [911] MONTHLY SNOWFALL RECORD PRECIPITATION
## [913] ICE ROADS ROUGH SEAS
## [915] UNSEASONABLY WARM/WET UNSEASONABLY COOL & WET
## [917] UNUSUALLY WARM TSTM WIND G45
## [919] NON SEVERE HAIL NON-SEVERE WIND DAMAGE
## [921] UNUSUALLY COLD WARM WEATHER
## [923] LANDSLUMP THUNDERSTORM WIND (G40)
## [925] UNSEASONABLY WARM & WET FLASH FLOOD
## [927] LOCALLY HEAVY RAIN WIND GUSTS
## [929] UNSEASONAL LOW TEMP HIGH SURF ADVISORY
## [931] LATE SEASON SNOW GUSTY LAKE WIND
## [933] ABNORMALLY DRY WINTER WEATHER MIX
## [935] RED FLAG CRITERIA WND
## [937] CSTL FLOODING/EROSION SMOKE
## [939] WATERSPOUT SNOW ADVISORY
## [941] EXTREMELY WET UNUSUALLY LATE SNOW
## [943] VERY DRY RECORD LOW RAINFALL
## [945] ROGUE WAVE PROLONG WARMTH
## [947] ACCUMULATED SNOWFALL FALLING SNOW/ICE
## [949] DUST DEVEL NON-TSTM WIND
## [951] NON TSTM WIND GUSTY THUNDERSTORM WINDS
## [953] PATCHY ICE HEAVY RAIN EFFECTS
## [955] EXCESSIVE HEAT/DROUGHT NORTHERN LIGHTS
## [957] MARINE TSTM WIND HIGH SURF ADVISORY
## [959] HAZARDOUS SURF FROST/FREEZE
## [961] WINTER WEATHER/MIX ASTRONOMICAL HIGH TIDE
## [963] WHIRLWIND VERY WARM
## [965] ABNORMALLY WET TORNADO DEBRIS
## [967] EXTREME COLD/WIND CHILL ICE ON ROAD
## [969] DROWNING GUSTY THUNDERSTORM WIND
## [971] MARINE HAIL HIGH SURF ADVISORIES
## [973] HURRICANE/TYPHOON HEAVY SURF/HIGH SURF
## [975] SLEET STORM STORM SURGE/TIDE
## [977] COLD/WIND CHILL MARINE HIGH WIND
## [979] TSUNAMI DENSE SMOKE
## [981] LAKESHORE FLOOD MARINE THUNDERSTORM WIND
## [983] MARINE STRONG WIND ASTRONOMICAL LOW TIDE
## [985] VOLCANIC ASHFALL
## 985 Levels: HIGH SURF ADVISORY COASTAL FLOOD ... WND
## for some experts this could be useful
sessionInfo()
## R version 3.2.2 (2015-08-14)
## Platform: x86_64-apple-darwin13.4.0 (64-bit)
## Running under: OS X 10.10.5 (Yosemite)
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] dplyr_0.4.3 Rmisc_1.5 plyr_1.8.3 lattice_0.20-33
## [5] ggplot2_1.0.1 knitr_1.11
##
## loaded via a namespace (and not attached):
## [1] Rcpp_0.12.2 magrittr_1.5 MASS_7.3-45 munsell_0.4.2
## [5] colorspace_1.2-6 R6_2.1.1 highr_0.5.1 stringr_1.0.0
## [9] tools_3.2.2 parallel_3.2.2 grid_3.2.2 gtable_0.1.2
## [13] DBI_0.3.1 htmltools_0.2.6 lazyeval_0.1.10 yaml_2.1.13
## [17] digest_0.6.8 assertthat_0.1 reshape2_1.4.1 formatR_1.2.1
## [21] evaluate_0.8 rmarkdown_0.8.1 labeling_0.3 stringi_1.0-1
## [25] scales_0.3.0 proto_0.3-10