Column

Top 10

Distribuciones

Correlaciones - Cacao

Correlaciones - Pastos

pH vs Calcio

Distancias

Clúster

Componentes Principales

Column

Valores ausentes

Resumen Descriptivo pH - Cacao por departamento

---
title: "Resultados de Análisis de Suelos - Cacao (establecido) en Colombia"
output: 
  flexdashboard::flex_dashboard:
    theme:
      bg: "#101010"
      fg: "#FDF7F7" 
      primary: "#4daff9"
      base_font:
        google: Prompt
      code_font:
        google: JetBrains Mono
    orientation: columns
    vertical_layout: fill
    source_code: embed
---

```{r setup, include=FALSE}
# Bibliotecas
library(flexdashboard)
library(tidyverse)
library(janitor)
library(plotly)
library(visdat)
library(DT)
library(corrr)
library(splines)

# Nombres de variables
nombres <- c(
  "depto",
  "mpio",
  "cultivo",
  "estado",
  "tiempo_estab",
  "topografia",
  "drenaje",
  "riego",
  "fertilizantes",
  "fecha_analisis",
  "ph_agua_suelo",
  "materia_org",
  "fosforo",
  "azufre",
  "acidez",
  "aluminio",
  "calcio",
  "magnesio",
  "potasio",
  "sodio",
  "cice",
  "conductividad",
  "hierro_olsen",
  "cobre",
  "manganeso",
  "zinc",
  "boro",
  "hierro_doble",
  "cobre_doble",
  "manganeso_doble",
  "zinc_doble"
  
)

# Datos de suelos
suelos <-
  read_csv("Resultados_de_An_lisis_de_Laboratorio_Suelos_en_Colombia.csv",
           na = "ND") %>%
  select(-c(numfila, Secuencial)) %>%
  set_names(nombres) %>%
  mutate(
    across(c(depto, mpio), str_to_title),
    across(
      c(cultivo, estado, tiempo_estab, topografia, drenaje, riego),
      str_to_sentence
    ),
    across(
      c(
        fosforo,
        calcio,
        magnesio,
        potasio,
        sodio,
        hierro_olsen,
        cobre,
        manganeso,
        zinc,
        cobre_doble,
        manganeso_doble,
        zinc_doble
      ),
      ~ str_replace_all(
        string = .,
        pattern = ",",
        replacement = "."
      )
    ),
    across(
      c(
        fosforo,
        calcio,
        magnesio,
        potasio,
        sodio,
        hierro_olsen,
        cobre,
        manganeso,
        zinc,
        cobre_doble,
        manganeso_doble,
        zinc_doble
      ),
      ~ str_replace_all(
        string = .,
        pattern = "<",
        replacement = ""
      )
    ),
    across(
      c(
        fosforo,
        calcio,
        magnesio,
        potasio,
        sodio,
        hierro_olsen,
        cobre,
        manganeso,
        zinc,
        cobre_doble,
        manganeso_doble,
        zinc_doble
      ),
      as.numeric
    )
  ) %>% 
  select(-c(fecha_analisis, hierro_doble, cobre_doble, manganeso_doble, zinc_doble))

# Configuración de tema
theme_set(theme_minimal())
thematic::thematic_rmd()
```

Column {data-width=540 .tabset}
-----------------------------------------------------------------------

### Top 10 

```{r}
suelos %>% 
  count(cultivo, sort = TRUE) %>% 
  slice(1:10) %>% 
  ggplot(aes(x = reorder(cultivo, n), y = n, label = n)) +
  geom_col() +
  geom_label(size = 3) +
  labs(x = "", y = "n") +
  coord_flip() 
```

### Distribuciones 

```{r}
suelos %>% 
  filter(cultivo == "Cacao") %>% 
  filter(estado == "Establecido") %>% 
  filter(ph_agua_suelo < 10 ) %>% 
  select(where(is.numeric)) %>% 
  pivot_longer(cols = everything()) %>% 
  ggplot(aes(x = value)) +
  facet_wrap(~name, scales = "free", ncol = 5) +
  geom_density(fill = "firebrick2", alpha = 0.5) +
  scale_x_log10()
```


### Correlaciones - Cacao

```{r}
suelos %>% 
  filter(cultivo == "Cacao") %>% 
  filter(estado == "Establecido") %>% 
  filter(ph_agua_suelo < 10 ) %>% 
  select(where(is.numeric)) %>% 
  correlate(method = "spearman") %>% 
  network_plot()
```

### Correlaciones - Pastos

```{r}
suelos %>% 
  filter(cultivo == "Pastos") %>% 
  filter(estado == "Establecido") %>% 
  filter(ph_agua_suelo < 10 ) %>% 
  select(where(is.numeric)) %>% 
  correlate(method = "spearman") %>% 
  network_plot()
```

### pH vs Calcio

```{r}
suelos %>% 
  filter(cultivo == "Cacao") %>% 
  filter(estado == "Establecido") %>% 
  filter(ph_agua_suelo < 10) %>% 
  filter(calcio < 100) %>% 
  ggplot(aes(x = ph_agua_suelo, y = calcio)) +
  geom_point(alpha = 0.1) +
  scale_x_log10() +
  scale_y_log10() +
  geom_smooth(method = "lm", se = FALSE, color = "green") +
  geom_smooth(method = "gam",
              formula = y ~ ns(x, df = 3),
              color = "red",
              se = FALSE) +
  geom_smooth(method = "gam",
              formula = y ~ ns(x, df = 150),
              color = "yellow",
              se = FALSE) +
  labs(x = "pH", y = "Calcio",
       title = "Lineal o no lineal?",
       subtitle = "¿Complejidad vs Interpretación?")
```


### Distancias

### Clúster

### Componentes Principales

Column {data-width=460}
-----------------------------------------------------------------------

### Valores ausentes

```{r, fig.width=9}
suelos %>% 
  vis_miss(warn_large_data = FALSE)
```

### Resumen Descriptivo pH - Cacao por departamento

```{r}
suelos %>% 
  filter(cultivo == "Cacao") %>% 
  group_by(depto) %>% 
  summarise(
    promedio = mean(ph_agua_suelo, na.rm = TRUE),
    mediana = median(ph_agua_suelo, na.rm = TRUE),
    desvEst = sd(ph_agua_suelo, na.rm = TRUE),
    minimo = min(ph_agua_suelo, na.rm = TRUE),
    maximo = max(ph_agua_suelo, na.rm = TRUE),
    percentil5 = quantile(ph_agua_suelo, na.rm = TRUE, probs = 0.05),
    percentil95 = quantile(ph_agua_suelo, na.rm = TRUE, probs = 0.95),
    N = n()
  ) %>% 
  ungroup() %>% 
  mutate(across(where(is.numeric), round, digits = 2)) %>%
  datatable(rownames = FALSE)
```