Dataset
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.1 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(lubridate)
library(knitr)
load("Ozone_Drought_Final.RData")
ozn <- combinedAir.final
## Calculating Number of MonitorID with Severe Drought
ozn_sum <- ozn %>%
group_by(MonitorID) %>%
reframe(count = n(),
sev_count = sum(USDM.categorical == "SevereDrought" &
Max.Ozone > 0),
pct_sev = as.numeric((sev_count/count) * 100)) %>%
ungroup()
## Total observations
sum(ozn_sum$count)
## [1] 6608332
## Total observations with Severe Drought
sum(ozn_sum$sev_count)
## [1] 611475
Percentage of Observations with SevereDrought per MonitorID
ozn_sum1 <- ozn_sum %>%
mutate(pct_group = case_when(pct_sev == 0 ~ "NoSevere",
pct_sev > 0 & pct_sev <= 1 ~ "<1%",
pct_sev > 1 & pct_sev <= 2 ~ "<2%",
pct_sev > 2 & pct_sev <= 3 ~ "<3%",
pct_sev > 3 & pct_sev <= 4 ~ "<4%",
pct_sev > 4 & pct_sev <= 5 ~ "<5%",
pct_sev > 5 & pct_sev <= 6 ~ "<6%",
pct_sev > 6 & pct_sev <= 7 ~ "<7%",
pct_sev > 7 & pct_sev <= 8 ~ "<8%",
pct_sev > 8 & pct_sev <= 9 ~ "<9%",
pct_sev > 9 & pct_sev <= 10 ~ "<10%",
TRUE ~ ">10%")
)
## NoSevere means No Severe Drought observations for the MonitorID
## <1% means less than 1% Severe Drought observations for the MonitorID
head(ozn_sum1)
## # A tibble: 6 × 5
## MonitorID count sev_count pct_sev pct_group
## <chr> <int> <int> <dbl> <chr>
## 1 010030010 4389 392 8.93 <9%
## 2 010270001 1925 335 17.4 >10%
## 3 010331002 4155 182 4.38 <5%
## 4 010331003 137 0 0 NoSevere
## 5 010499991 2749 210 7.64 <8%
## 6 010510001 3966 695 17.5 >10%
Percentage Group
ozn_sum2 <- ozn_sum1 %>%
group_by(pct_group) %>%
summarize(count = n()) %>%
ungroup() %>%
mutate(pct = round((count/sum(count)) * 100, 2))
kable(ozn_sum2, caption = "Percentage Group", align = c("c", "c", "c"))
Percentage Group
<1% |
85 |
4.33 |
<10% |
50 |
2.55 |
<2% |
140 |
7.13 |
<3% |
104 |
5.30 |
<4% |
67 |
3.41 |
<5% |
63 |
3.21 |
<6% |
53 |
2.70 |
<7% |
70 |
3.57 |
<8% |
48 |
2.45 |
<9% |
47 |
2.39 |
>10% |
566 |
28.83 |
NoSevere |
670 |
34.13 |