El sector agrícola enfrenta el desafío constante de optimizar el uso de recursos como el agua, los nutrientes del suelo y la planificación de los cultivos. La identificación de los factores ambientales y de suelo que más influyen en el rendimiento permite a los agricultores tomar decisiones más informadas, reduciendo pérdidas y maximizando la productividad.
Este informe tiene como objetivo analizar el Crop Recommendation Dataset, el cual contiene información sobre parámetros como nitrógeno, fósforo, potasio, temperatura, humedad, pH y lluvias. A partir de este análisis, se busca determinar qué condiciones favorecen ciertos cultivos y cómo estas variables pueden orientar la recomendación del cultivo ideal.
Estas son las librerias que se emplearon para el desarrollo de este analisis.
–El Tidyverse es una colección de paquetes de R diseñados para la ciencia de datos, que comparten una misma filosofía de diseño y una sintaxis coherente.
Facilita la importación, transformación, visualización y modelado de datos.
Permite escribir código más legible, consistente y eficiente en comparación con las funciones base de R.
–corrplot es un paquete de R utilizado para visualizar matrices de correlación de manera gráfica.
Genera mapas visuales de correlaciones entre variables.
Usa colores, números o círculos para representar la magnitud y dirección de las correlaciones.
Facilita la interpretación rápida de relaciones lineales en un conjunto de datos.
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.2
## ✔ ggplot2 4.0.0 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.1.0
## ── 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(corrplot)
## corrplot 0.95 loaded
crop<-read_csv("Crop_recommendation.csv")
## Rows: 2200 Columns: 8
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): label
## dbl (7): N, P, K, temperature, humidity, ph, rainfall
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
crop
## # A tibble: 2,200 × 8
## N P K temperature humidity ph rainfall label
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 90 42 43 20.9 82.0 6.50 203. rice
## 2 85 58 41 21.8 80.3 7.04 227. rice
## 3 60 55 44 23.0 82.3 7.84 264. rice
## 4 74 35 40 26.5 80.2 6.98 243. rice
## 5 78 42 42 20.1 81.6 7.63 263. rice
## 6 69 37 42 23.1 83.4 7.07 251. rice
## 7 69 55 38 22.7 82.6 5.70 271. rice
## 8 94 53 40 20.3 82.9 5.72 242. rice
## 9 89 54 38 24.5 83.5 6.69 230. rice
## 10 68 58 38 23.2 83.0 6.34 221. rice
## # ℹ 2,190 more rows
# Agrupar los datos por el tipo de cultivo ('label') y calcular las medias de las variables
# El resultado será un nuevo dataframe con las condiciones ideales para cada cultivo
perfil_cultivos <- crop %>%
group_by(label) %>%
summarise(
N_media = mean(N, na.rm = TRUE),
P_media = mean(P, na.rm = TRUE),
K_media = mean(K, na.rm = TRUE),
temp_media = mean(temperature, na.rm = TRUE),
humedad_media = mean(humidity, na.rm = TRUE),
ph_media = mean(ph, na.rm = TRUE),
lluvia_media = mean(rainfall, na.rm = TRUE)
)
# Mostrar el dataframe resultante para ver el perfil de cada cultivo
print(perfil_cultivos)
## # A tibble: 22 × 8
## label N_media P_media K_media temp_media humedad_media ph_media lluvia_media
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 apple 20.8 134. 200. 22.6 92.3 5.93 113.
## 2 banana 100. 82.0 50.0 27.4 80.4 5.98 105.
## 3 black… 40.0 67.5 19.2 30.0 65.1 7.13 67.9
## 4 chick… 40.1 67.8 79.9 18.9 16.9 7.34 80.1
## 5 cocon… 22.0 16.9 30.6 27.4 94.8 5.98 176.
## 6 coffee 101. 28.7 29.9 25.5 58.9 6.79 158.
## 7 cotton 118. 46.2 19.6 24.0 79.8 6.91 80.4
## 8 grapes 23.2 133. 200. 23.8 81.9 6.03 69.6
## 9 jute 78.4 46.9 40.0 25.0 79.6 6.73 175.
## 10 kidne… 20.8 67.5 20.0 20.1 21.6 5.75 106.
## # ℹ 12 more rows