Preparing the property and crop damage data set

# Note that the PROPDMG and CROPDMG do not give the full damage number, the exponent in PROPDMGEXP and CROPDMGEXP need to be considered
economic <- noaa %>%
    select(EVTYPE, PROPDMG, CROPDMG, PROPDMGEXP, CROPDMGEXP)

unique(economic$PROPDMGEXP)
##  [1] "K" "M" ""  "B" "m" "+" "0" "5" "6" "?" "4" "2" "3" "h" "7" "H" "-" "1" "8"
unique(economic$CROPDMGEXP)
## [1] ""  "M" "K" "m" "B" "?" "0" "k" "2"

Combine the exponent values with the appropriate damage to determine actual value

economic$PROPDMGEXP[economic$PROPDMGEXP %in% c("", "+", "?", "-")] <- 1
economic$PROPDMGEXP[economic$PROPDMGEXP %in% c("B")] <- 9
economic$PROPDMGEXP[economic$PROPDMGEXP %in% c("M", "m")] <- 6
economic$PROPDMGEXP[economic$PROPDMGEXP %in% c("K")] <- 3
economic$PROPDMGEXP[economic$PROPDMGEXP %in% c("H", "h")] <- 2

economic$CROPDMGEXP[economic$CROPDMGEXP %in% c("", "?", "-")] <- 1
economic$CROPDMGEXP[economic$CROPDMGEXP %in% c("B")] <- 9
economic$CROPDMGEXP[economic$CROPDMGEXP %in% c("M", "m")] <- 6
economic$CROPDMGEXP[economic$CROPDMGEXP %in% c("K", "k")] <- 3
economic$CROPDMGEXP[economic$CROPDMGEXP %in% c("H")] <- 2

economic$property <- economic$PROPDMG * (10 ^ as.numeric(economic$PROPDMGEXP))
economic$crop <- economic$CROPDMG * (10 ^ as.numeric(economic$CROPDMGEXP))
economic$damage <- economic$property + economic$crop

Results: