En este cuaderno se realizarán una serie de ejercicios de visualización y descripción utilizando un conjunto de datos llamado StudyArea.csv, que es un archivo separado por comas que contiene datos de incendios forestales de los años 1980-2016 para los estados de California, Oregón, Washington, Idaho, Montana, Wyoming, Colorado, Utah, Nevada, Arizona y Nuevo México. Sin embargo, antes de proceder, prepararemos el entorno de trabajo y definiremos una función que será de utilidad más adelante:

library(readr)
library(dplyr)
library(ggplot2)

Antes de comenzar a realizar los ejercicios propuestos, se debe importar la base de datos y filtrarla para incluir solo las variables de YEAR_, CAUSE y TOTALACRES:

dfFires <- read_csv("StudyArea.csv", col_types = list(UNIT = col_character()), col_names = TRUE)
dfFires_subset <- select(dfFires, c("YEAR_", "CAUSE", "TOTALACRES"))
dfFires_subset$YEAR_ <- as.factor(dfFires_subset$YEAR_) # Convert data to factors
dfFires_subset$CAUSE <- as.factor(dfFires_subset$CAUSE) # Convert data to factors

Ahora procedemos a cambiar el nombre de las variables para facilitar la manipulación del conjunto de datos:

dfFires_subset_rename <- rename(dfFires_subset, Year = YEAR_, Cause = CAUSE, Burned_Acres = TOTALACRES)
head(dfFires_subset_rename)
## # A tibble: 6 × 3
##   Year  Cause Burned_Acres
##   <fct> <fct>        <dbl>
## 1 2001  Human          0.1
## 2 2002  Human          3  
## 3 2002  Human          0.5
## 4 2001  Human          0.1
## 5 1994  Human          1  
## 6 1994  Human          0.1

Al realizar una primera inspección de los datos, se nota que hay múltiples observaciones con causas etiquetadas como Undetermined, Unknown o datos faltantes:

summary(dfFires_subset_rename$Cause)
##        Human      Natural Undetermined      Unknown         NA's 
##       194466       243486          169            9         1232

Debido a que estas tres categorías apuntan a que la causa del incendio no fue determinada, se procede a colapsar estas tres categorías y etiquetarlas como Undetermined:

dfFires_subset_rename$Cause <- as.character(dfFires_subset_rename$Cause)

dfFires_subset_rename$Cause <- ifelse(is.na(dfFires_subset_rename$Cause) | !(dfFires_subset_rename$Cause %in% c("Human", "Natural")), "Undetermined", dfFires_subset_rename$Cause)

dfFires_subset_rename$Cause <- as.factor(dfFires_subset_rename$Cause)

summary(dfFires_subset_rename$Cause)
##        Human      Natural Undetermined 
##       194466       243486         1410

Hecho esto, se procede a agrupar los datos en términos del año y la causa del incendio, para posteriormente realizar un análisis descriptivo centrado en la cantidad total de acres quemados:

df_summary <- dfFires_subset_rename %>%
  group_by(Cause, Year) %>%
  summarise(Total_Burned_Acres = sum(Burned_Acres), .groups = "drop")

head(df_summary)
## # A tibble: 6 × 3
##   Cause Year  Total_Burned_Acres
##   <fct> <fct>              <dbl>
## 1 Human 1980             338450.
## 2 Human 1981             523872.
## 3 Human 1982             188587.
## 4 Human 1983             266244.
## 5 Human 1984             441094.
## 6 Human 1985             587403.

Finalmente, se traza el total de acres quemados por año y causa utilizando un diagrama de líneas:

ggplot(df_summary, aes(x = Year, y = Total_Burned_Acres, color = Cause, group = Cause)) + geom_line(linewidth = 1) + geom_point(size = 2) + scale_y_continuous(labels = scales::comma_format(scale = 1e-6, suffix = "M")) + theme_classic() + theme(axis.text.x = element_text(angle = 45, hjust = 1), axis.title.x = element_text(size = 12), axis.title.y = element_text(size = 12),plot.title = element_text(hjust = 0.5, size = 16)) + labs(x = "Year", y = "Total Acres Burned (Millions)", title = "Total Acres Burned by Cause over the Years")