install.packages(“R.utils”) WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/ Installing package into ‘C:/Users/ris/AppData/Local/R/win-library/4.2’ (as ‘lib’ is unspecified) trying URL ‘https://cran.rstudio.com/bin/windows/contrib/4.2/R.utils_2.12.2.zip’ Content type ‘application/zip’ length 1415469 bytes (1.3 MB) downloaded 1.3 MB

package ‘R.utils’ successfully unpacked and MD5 sums checked

install.packages(“rmarkdown”) Error in install.packages : Updating loaded packages

Restarting R session…

install.packages(“rmarkdown”) WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/ Installing package into ‘C:/Users/ris/AppData/Local/R/win-library/4.2’ (as ‘lib’ is unspecified) trying URL ‘https://cran.rstudio.com/bin/windows/contrib/4.2/rmarkdown_2.21.zip’ Content type ‘application/zip’ length 2611016 bytes (2.5 MB) downloaded 2.5 MB

package ‘rmarkdown’ successfully unpacked and MD5 sums checked

install.packages(“knitr”) WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/ Installing package into ‘C:/Users/rishi/AppData/Local/R/win-library/4.2’ (as ‘lib’ is unspecified) trying URL ‘https://cran.rstudio.com/bin/windows/contrib/4.2/knitr_1.42.zip’ Content type ‘application/zip’ length 1497585 bytes (1.4 MB) downloaded 1.4 MB

package ‘knitr’ successfully unpacked and MD5 sums checked

library(R.utils) Loading required package: R.oo Loading required package: R.methodsS3 R.methodsS3 v1.8.2 (2022-06-13 22:00:14 UTC) successfully loaded. See ?R.methodsS3 for help. R.oo v1.25.0 (2022-06-12 02:20:02 UTC) successfully loaded. See ?R.oo for help.

Attaching package: ‘R.oo’

The following object is masked from ‘package:R.methodsS3’:

throw

The following objects are masked from ‘package:methods’:

getClasses, getMethods

The following objects are masked from ‘package:base’:

attach, detach, load, save

R.utils v2.12.2 (2022-11-11 22:00:03 UTC) successfully loaded. See ?R.utils for help.

Attaching package: ‘R.utils’

The following object is masked from ‘package:utils’:

timestamp

The following objects are masked from ‘package:base’:

cat, commandArgs, getOption, isOpen, nullfile, parse, warnings

Warning message: package ‘R.utils’ was built under R version 4.2.3 > library(rmarkdown) Warning message: package ‘rmarkdown’ was built under R version 4.2.3 > library(knitr) Warning message: package ‘knitr’ was built under R version 4.2.3 > Sys.setlocale(“LC_TIME”, “English”) [1] “English_United States.1252” > temp <- tempfile() > > ##Performing the download > if(!file.exists(“/stormData.csv.bz2”)){ + download.file(“https://d396qusza40orc.cloudfront.net/repdata%2Fdata%2FStormData.csv.bz2”, destfile=“./stormData.csv.bz2”) + } trying URL ‘https://d396qusza40orc.cloudfront.net/repdata%2Fdata%2FStormData.csv.bz2’ Content type ‘application/bzip2’ length 49177144 bytes (46.9 MB) downloaded 46.9 MB

##Uncompressing the file if(!file.exists(“stormdata.csv”)) + { + bunzip2(“stormData.csv.bz2”,“stormdata.csv”,remove=F) + }

DP1.3 loading the data & reading the file

storm <- read.csv(“stormdata.csv”,header=TRUE,sep=“,”) summary(storm) STATE__ BGN_DATE BGN_TIME TIME_ZONE
Min. : 1.0 Length:902297 Length:902297 Length:902297
1st Qu.:19.0 Class :character Class :character Class :character
Median :30.0 Mode :character Mode :character Mode :character
Mean :31.2
3rd Qu.:45.0
Max. :95.0

 COUNTY       COUNTYNAME           STATE              EVTYPE         

Min. : 0.0 Length:902297 Length:902297 Length:902297
1st Qu.: 31.0 Class :character Class :character Class :character
Median : 75.0 Mode :character Mode :character Mode :character
Mean :100.6
3rd Qu.:131.0
Max. :873.0

BGN_RANGE BGN_AZI BGN_LOCATI END_DATE
Min. : 0.000 Length:902297 Length:902297 Length:902297
1st Qu.: 0.000 Class :character Class :character Class :character
Median : 0.000 Mode :character Mode :character Mode :character
Mean : 1.484
3rd Qu.: 1.000
Max. :3749.000

END_TIME COUNTY_END COUNTYENDN END_RANGE
Length:902297 Min. :0 Mode:logical Min. : 0.0000
Class :character 1st Qu.:0 NA’s:902297 1st Qu.: 0.0000
Mode :character Median :0 Median : 0.0000
Mean :0 Mean : 0.9862
3rd Qu.:0 3rd Qu.: 0.0000
Max. :0 Max. :925.0000

END_AZI END_LOCATI LENGTH WIDTH
Length:902297 Length:902297 Min. : 0.0000 Min. : 0.000
Class :character Class :character 1st Qu.: 0.0000 1st Qu.: 0.000
Mode :character Mode :character Median : 0.0000 Median : 0.000
Mean : 0.2301 Mean : 7.503
3rd Qu.: 0.0000 3rd Qu.: 0.000
Max. :2315.0000 Max. :4400.000

   F               MAG            FATALITIES          INJURIES        

Min. :0.0 Min. : 0.0 Min. : 0.0000 Min. : 0.0000
1st Qu.:0.0 1st Qu.: 0.0 1st Qu.: 0.0000 1st Qu.: 0.0000
Median :1.0 Median : 50.0 Median : 0.0000 Median : 0.0000
Mean :0.9 Mean : 46.9 Mean : 0.0168 Mean : 0.1557
3rd Qu.:1.0 3rd Qu.: 75.0 3rd Qu.: 0.0000 3rd Qu.: 0.0000
Max. :5.0 Max. :22000.0 Max. :583.0000 Max. :1700.0000
NA’s :843563
PROPDMG PROPDMGEXP CROPDMG CROPDMGEXP
Min. : 0.00 Length:902297 Min. : 0.000 Length:902297
1st Qu.: 0.00 Class :character 1st Qu.: 0.000 Class :character
Median : 0.00 Mode :character Median : 0.000 Mode :character
Mean : 12.06 Mean : 1.527
3rd Qu.: 0.50 3rd Qu.: 0.000
Max. :5000.00 Max. :990.000

 WFO             STATEOFFIC         ZONENAMES            LATITUDE   

Length:902297 Length:902297 Length:902297 Min. : 0
Class :character Class :character Class :character 1st Qu.:2802
Mode :character Mode :character Mode :character Median :3540
Mean :2875
3rd Qu.:4019
Max. :9706
NA’s :47
LONGITUDE LATITUDE_E LONGITUDE_ REMARKS
Min. :-14451 Min. : 0 Min. :-14455 Length:902297
1st Qu.: 7247 1st Qu.: 0 1st Qu.: 0 Class :character
Median : 8707 Median : 0 Median : 0 Mode :character
Mean : 6940 Mean :1452 Mean : 3509
3rd Qu.: 9605 3rd Qu.:3549 3rd Qu.: 8735
Max. : 17124 Max. :9706 Max. :106220
NA’s :40
REFNUM
Min. : 1
1st Qu.:225575
Median :451149
Mean :451149
3rd Qu.:676723
Max. :902297

variables<-c(“EVTYPE”,“FATALITIES”,“INJURIES”,“PROPDMG”, “PROPDMGEXP”,“CROPDMG”,“CROPDMGEXP”) strmdata<-storm[variables]

dim(strmdata) [1] 902297 7 names(strmdata) [1] “EVTYPE” “FATALITIES” “INJURIES” “PROPDMG” “PROPDMGEXP” [6] “CROPDMG” “CROPDMGEXP” # Q1.2 Reviewing events that cause the most fatalities ( The Top-10 Fatalities by Weather Event )

Procedure = aggregate the top 10 fatalities by the event type and sort the output in descending order

Fatalities <- aggregate(FATALITIES ~ EVTYPE, data = strmdata, FUN = sum) Top10_Fatalities <- Fatalities[order(-Fatalities$FATALITIES), ][1:10, ] Top10_Fatalities EVTYPE FATALITIES 834 TORNADO 5633 130 EXCESSIVE HEAT 1903 153 FLASH FLOOD 978 275 HEAT 937 464 LIGHTNING 816 856 TSTM WIND 504 170 FLOOD 470 585 RIP CURRENT 368 359 HIGH WIND 248 19 AVALANCHE 224 # Q1.3 Reviewing events that cause the most injuries ( The Top-10 Injuries by Weather Event )

Procedure = aggregate the top 10 injuries by the event type and sort the output in descending order

Injuries <- aggregate(INJURIES ~ EVTYPE, data = strmdata, FUN = sum) Top10_Injuries <- Injuries[order(-Injuries$INJURIES), ][1:10, ] Top10_Injuries EVTYPE INJURIES 834 TORNADO 91346 856 TSTM WIND 6957 170 FLOOD 6789 130 EXCESSIVE HEAT 6525 464 LIGHTNING 5230 275 HEAT 2100 427 ICE STORM 1975 153 FLASH FLOOD 1777 760 THUNDERSTORM WIND 1488 244 HAIL 1361 # Q1.4 Plot of Top 10 Fatalities & Injuries for Weather Event Types ( Population Health Impact )

Proecedure = plot graphs showing the top 10 fatalities and injuries

par(mfrow=c(1,2),mar=c(10,3,3,2)) barplot(Top10_Fatalities\(FATALITIES,names.arg=Top10_Fatalities\)EVTYPE,las=2,col=“purple”,ylab=“fatalities”,main=“Top 10 fatalities”) barplot(Top10_Injuries\(INJURIES,names.arg=Top10_Injuries\)EVTYPE,las=2,col=“purple”,ylab=“injuries”,main=“Top 10 Injuries”)

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

An analysis of the weather events responsible for the greatest economic consequences

Hypothesis: Economic consequences means damages. The two significant types of damage typically caused by weather events include ‘properties and crops’

Q2.1 Data Exploration & Findings …

Upon reviewing the column names, the property damage(PROPDMG) and crop damage(CROPDMG) columns both have another related column titled ‘exponents’ (i.e - PROPDMGEXP and CROPDMGEXP respectively).

As a result, let’s convert the exponent columns into numeric data for the calculation of total property and crop damages encountered.

Q2.2 Defining & Calcuating [ Property Damage ]

Property damage exponents for each level listed out & assigned those values for the property exponent data.

Invalid data was excluded by assigning the value as ‘0’.

Then, the property damage value was calculated by multiplying the property damage and property exponent value.

unique(strmdata\(PROPDMGEXP) [1] "K" "M" "" "B" "m" "+" "0" "5" "6" "?" "4" "2" "3" "h" "7" "H" "-" "1" [19] "8" # Assigning values for the property exponent strmdata strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "K"] <- 1000 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "M"] <- 1e+06 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == ""] <- 1 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "B"] <- 1e+09 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "m"] <- 1e+06 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "0"] <- 1 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "5"] <- 1e+05 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "6"] <- 1e+06 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "4"] <- 10000 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "2"] <- 100 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "3"] <- 1000 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "h"] <- 100 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "7"] <- 1e+07 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "H"] <- 100 strmdata\)PROPEXP[strmdata\(PROPDMGEXP == "1"] <- 10 strmdata\)PROPEXP[strmdata$PROPDMGEXP == “8”] <- 1e+08

Assigning ‘0’ to invalid exponent strmdata

strmdata\(PROPEXP[strmdata\)PROPDMGEXP == “+”] <- 0 strmdata\(PROPEXP[strmdata\)PROPDMGEXP == “-”] <- 0 strmdata\(PROPEXP[strmdata\)PROPDMGEXP == “?”] <- 0

Calculating the property damage value

strmdata\(PROPDMGVAL <- strmdata\)PROPDMG * strmdata$PROPEXP

Q2.3 Defining & Calcuating [ Crop Damage ]

Crop damage exponents for each level listed out & assigned those values for the crop exponent data.

Invalid data was excluded by assigning the value as ‘0’.

Then, the crop damage value was calculated by multiplying the crop damage and crop exponent value.

unique(strmdata\(CROPDMGEXP) [1] "" "M" "K" "m" "B" "?" "0" "k" "2" # Assigning values for the crop exponent strmdata strmdata\)CROPEXP[strmdata\(CROPDMGEXP == "M"] <- 1e+06 strmdata\)CROPEXP[strmdata\(CROPDMGEXP == "K"] <- 1000 strmdata\)CROPEXP[strmdata\(CROPDMGEXP == "m"] <- 1e+06 strmdata\)CROPEXP[strmdata\(CROPDMGEXP == "B"] <- 1e+09 strmdata\)CROPEXP[strmdata\(CROPDMGEXP == "0"] <- 1 strmdata\)CROPEXP[strmdata\(CROPDMGEXP == "k"] <- 1000 strmdata\)CROPEXP[strmdata\(CROPDMGEXP == "2"] <- 100 strmdata\)CROPEXP[strmdata$CROPDMGEXP == “”] <- 1

Assigning ‘0’ to invalid exponent strmdata

strmdata\(CROPEXP[strmdata\)CROPDMGEXP == “?”] <- 0

calculating the crop damage

strmdata\(CROPDMGVAL <- strmdata\)CROPDMG * strmdata$CROPEXP

Q2.4 Property Damage Summary

Procedure = aggregate the property damage by the event type and sort the output it in descending order

prop <- aggregate(PROPDMGVAL~EVTYPE,data=strmdata,FUN=sum,na.rm=TRUE) prop <- prop[with(prop,order(-PROPDMGVAL)),] prop <- head(prop,10) print(prop) EVTYPE PROPDMGVAL 170 FLOOD 144657709807 411 HURRICANE/TYPHOON 69305840000 834 TORNADO 56947380617 670 STORM SURGE 43323536000 153 FLASH FLOOD 16822673979 244 HAIL 15735267513 402 HURRICANE 11868319010 848 TROPICAL STORM 7703890550 972 WINTER STORM 6688497251 359 HIGH WIND 5270046260 # Q2.5 Crop Damage Summary

Procedure = aggregate the crop damage by the event type and sort the output it in descending order

crop <- aggregate(CROPDMGVAL~EVTYPE,data=strmdata,FUN=sum,na.rm=TRUE) crop <- crop[with(crop,order(-CROPDMGVAL)),] crop <- head(crop,10) print(crop) EVTYPE CROPDMGVAL 95 DROUGHT 13972566000 170 FLOOD 5661968450 590 RIVER FLOOD 5029459000 427 ICE STORM 5022113500 244 HAIL 3025954473 402 HURRICANE 2741910000 411 HURRICANE/TYPHOON 2607872800 153 FLASH FLOOD 1421317100 140 EXTREME COLD 1292973000 212 FROST/FREEZE 1094086000 # Q2.6 Plot of Top 10 Property & Crop damages by Weather Event Types ( Economic Consequences )

##plot the graph showing the top 10 property and crop damages

par(mfrow=c(1,2),mar=c(11,3,3,2)) barplot(prop\(PROPDMGVAL/(10^9),names.arg=prop\)EVTYPE,las=2,col=“gold”,ylab=“Prop.damage(billions)”,main=“Top10 Prop.Damages”) barplot(crop\(CROPDMGVAL/(10^9),names.arg=crop\)EVTYPE,las=2,col=“gold”,ylab=“Crop damage(billions)”,main=“Top10 Crop.Damages”)