Li Sun
download data from “https://d396qusza40orc.cloudfront.net/repdata%2Fdata%2FStormData.csv.bz2” and unzip it by winrar to “.//data/StormData/repdata-data-StormData.csv”. And read it into R as data.frame
df <- read.csv("C:/Users/sunli/Documents/data/StormData/repdata-data-StormData.csv")
inj <- tapply(df$INJURIES, df$EVTYPE, sum)
inj <- sort(inj, decreasing=TRUE)
dea <- tapply(df$FATALITIES, df$EVTYPE, sum)
dea <- sort(dea, decreasing=TRUE)
par(mfrow=c(1,2))
x <- names(inj)[1:10]
barplot(inj[1:10], beside = TRUE, width=0.85, main="Top 10 Events with Highest Injuries", ylab="number of injuries", xaxt="n", xlim = c(0,11))
text(x = seq(1, 15, by=1.5), labels = x, srt = 45, pos = 2, xpd = TRUE, cex = 0.8)
x1 <- names(dea)[1:10]
barplot(dea[1:10], beside = TRUE, width=0.85, main="Top 10 Events with Highest Fatalities", ylab="number of Fatalities", xaxt="n", xlim = c(0,11))
text(x = seq(1, 15, by=1.5), labels = x1, srt = 45, pos = 2, xpd = TRUE, cex = 0.8)
Analysis of Combined fatalities and injuries
Dmg2people <- df$FATALITIES * 10 + df$INJURIES
both <- tapply(Dmg2people, df$EVTYPE, sum)
both <- sort(both, decreasing=TRUE)
par(mfrow=c(1,1))
x <- names(both)[1:10]
barplot(both[1:10], beside = TRUE, width=0.85, main="Top 10 Events with Highest Damage to People", ylab="number of Damage", xaxt="n", xlim = c(0,11))
text(x = seq(1, 15, by=1.5), labels = x, srt = 45, pos = 2, xpd = TRUE, cex = 0.8)
process the property damage and crop damage
PROP <- rep(NA, length(df$PROPDMG))
PROP[df$PROPDMGEXP == "K"] <- 1000
PROP[df$PROPDMGEXP == "M"] <- 1000000
PROP[df$PROPDMGEXP == "m"] <- 1000000
PROP2<- df$PROPDMG * PROP
CROP <- rep(NA, length(df$CROPDMG))
CROP[df$CROPDMGEXP == "K"] <- 1000
CROP[df$CROPDMGEXP == "M"] <- 1000000
CROP[df$CROPDMGEXP == "m"] <- 1000000
CROP2<- df$CROPDMG * CROP
PROP3 <- tapply(PROP2, df$EVTYPE, sum, na.rm=TRUE)
PROP3 <- sort(PROP3, decreasing=TRUE)
CROP3 <- tapply(CROP2, df$EVTYPE, sum, na.rm=TRUE)
CROP3 <- sort(CROP3, decreasing=TRUE)
Ploting
par(mfrow=c(1,2))
x <- names(PROP3)[1:10]
barplot(PROP3[1:10], beside = TRUE, width=0.85, main="Top 10 Events with Highest Property Damage", ylab="Cost of Property Dmg", xaxt="n", xlim = c(0,11))
text(x = seq(1, 15, by=1.5), labels = x, srt = 45, pos = 2, xpd = TRUE, cex = 0.8)
x1 <- names(CROP3)[1:10]
barplot(dea[1:10], beside = TRUE, width=0.85, main="Top 10 Events with Highest CROP DAMAGE", ylab="LOST OF CROPS", xaxt="n", xlim = c(0,11))
text(x = seq(1, 15, by=1.5), labels = x1, srt = 45, pos = 2, xpd = TRUE, cex = 0.8)
Combined analysis
par(mfrow=c(1,1))
both2 <- PROP2 + CROP2
both2 <- tapply(both2, df$EVTYPE, sum)
both2 <- sort(both2, decreasing=TRUE)
par(mfrow=c(1,1))
x <- names(both2)[1:10]
barplot(both2[1:10], beside = TRUE, width=0.85, main="Top 10 Events with Highest Damage", ylab="Lost due to Damage", xaxt="n", xlim = c(0,11))
text(x = seq(1, 15, by=1.5), labels = x, srt = 45, pos = 2, xpd = TRUE, cex = 0.8)