| Title: | Data Visualization and Statistical Tools for Agroindustrial Experiments |
|---|---|
| Description: | Set of tools for statistical analysis, visualization, and reporting of agroindustrial and agricultural experiments. The package provides functions to perform ANOVA with post-hoc tests (e.g. Tukey HSD and Duncan MRR), compute coefficients of variation, and generate publication-ready summaries. High-level wrappers allow automated multi-variable analysis with optional clustering by experimental factors, as well as direct export of results to Excel spreadsheets and high-resolution image tables for reporting. Functions build on 'ggplot2', 'stats', and related packages and follow methods widely used in agronomy (field trials and plant breeding). Key references include Tukey (1949) <doi:10.2307/3001913>, Duncan (1955) <doi:10.2307/3001478>, and Cohen (1988, ISBN:9781138892899); see also 'agricolae' <https://CRAN.R-project.org/package=agricolae> and Wickham (2016, ISBN:9783319242750> for 'ggplot2'. Versión en español: Conjunto de herramientas para el análisis estadístico, visualización y generación de reportes en ensayos agroindustriales y agrícolas. Incluye funciones para ANOVA con pruebas post-hoc, resúmenes automáticos multivariables con o sin agrupamiento por factores, y exportación directa de resultados a Excel e imágenes de alta resolución para informes técnicos. |
| Authors: | Joaquin Alejandro Salinas Angeles [aut, cre] (ORCID: <https://orcid.org/0009-0005-6174-9714>) |
| Maintainer: | Joaquin Alejandro Salinas Angeles <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.2.1 |
| Built: | 2026-05-23 08:38:31 UTC |
| Source: | https://github.com/joa3aquin50/agrobox |
Esta funcion realiza analisis estadisticos por grupos definidos (clusteres) usando ANOVA y pruebas post-hoc (Duncan o Tukey), y genera un grafico tipo boxplot con etiquetas de medias, letras de significancia, coeficiente de variacion (CV) y potencia estadistica (Power).
agrobox( data, test = c("Duncan", "Tukey"), factor, factor2 = NULL, orden_factor = NULL, bloque = NULL, variable, niveles_factor = NULL, titulo = NULL, estructura = NULL, lim_sup = NULL, lim_inf = NULL, colores = NULL )agrobox( data, test = c("Duncan", "Tukey"), factor, factor2 = NULL, orden_factor = NULL, bloque = NULL, variable, niveles_factor = NULL, titulo = NULL, estructura = NULL, lim_sup = NULL, lim_inf = NULL, colores = NULL )
data |
Un data frame que contiene los datos. |
test |
Tipo de prueba post-hoc a usar: '"Duncan"' (por defecto) o '"Tukey"'. |
factor |
Variable categorica principal (factor 1 o tratamiento). |
factor2 |
(Opcional) Segundo factor para interaccion (usado en ANOVA). |
orden_factor |
(Opcional) Vector con el orden deseado para los niveles del 'factor'. |
bloque |
(Opcional) Variable de bloque para disenos con bloques completos. |
variable |
Variable numerica dependiente. |
niveles_factor |
(Opcional) Etiquetas personalizadas para los niveles del 'factor'. |
titulo |
Etiqueta para el eje Y del grafico (por ejemplo: "Altura (cm)"). |
estructura |
(Opcional) Formula tipo 'Grupo1 ~ Grupo2' para definir los clusteres. |
lim_sup |
(Opcional) Limite superior para el eje Y. |
lim_inf |
(Opcional) Limite inferior para el eje Y. |
colores |
Vector de colores para los niveles del 'factor'. |
Una lista con:
Objeto 'ggplot' con el grafico generado.
Niveles del factor utilizados.
# Ejemplo de un experimento factorial con bloques y estructura bifactorial library(dplyr) library(tidyr) library(ggplot2) set.seed(123) # Diseno factorial con bloques (ej. 4 bloques por Localidad-Variedad) df_experimento <- expand.grid( Fertilizante = c("A", "B", "C"), Dosis = c("Baja", "Media", "Alta"), Localidad = c("Loc1", "Loc2"), Variedad = c("Var1", "Var2", "Var3"), Bloque = paste0("B", 1:4) # Bloques, no repeticiones ) # Simular rendimiento (tn/ha) con efectos reales df_experimento$tn_ha <- 20 + ifelse(df_experimento$Fertilizante == "B", 2, ifelse(df_experimento$Fertilizante == "C", 4, 0)) + ifelse(df_experimento$Dosis == "Media", 1, ifelse(df_experimento$Dosis == "Alta", 2, 0)) + ifelse(df_experimento$Localidad == "Loc2", 0.5, 0) + ifelse(df_experimento$Variedad == "Var2", 0.5, ifelse(df_experimento$Variedad == "Var3", -0.5, 0)) + rnorm(nrow(df_experimento), mean = 0, sd = 1.2) # Ejecutar la funcion agrobox agrobox( data = df_experimento, test = "Duncan", factor = "Fertilizante", factor2 = "Dosis", orden_factor = c("A", "C", "B"), bloque = "Bloque", variable = "tn_ha", niveles_factor = c("A" = "Nitrato de amonio", "B" = "Fosfato diamonico", "C" = "Sulfato de amonio"), titulo = "Rendimiento (tn/ha)", estructura = "Localidad~Variedad", #se realizara un ANOVA y un TEST POST-HOC por cada grupo. lim_sup = NULL, lim_inf = NULL, colores = c("A" = "#1b9e77", "B" = "#d95f02", "C" = "#7570b3") )$plot# Ejemplo de un experimento factorial con bloques y estructura bifactorial library(dplyr) library(tidyr) library(ggplot2) set.seed(123) # Diseno factorial con bloques (ej. 4 bloques por Localidad-Variedad) df_experimento <- expand.grid( Fertilizante = c("A", "B", "C"), Dosis = c("Baja", "Media", "Alta"), Localidad = c("Loc1", "Loc2"), Variedad = c("Var1", "Var2", "Var3"), Bloque = paste0("B", 1:4) # Bloques, no repeticiones ) # Simular rendimiento (tn/ha) con efectos reales df_experimento$tn_ha <- 20 + ifelse(df_experimento$Fertilizante == "B", 2, ifelse(df_experimento$Fertilizante == "C", 4, 0)) + ifelse(df_experimento$Dosis == "Media", 1, ifelse(df_experimento$Dosis == "Alta", 2, 0)) + ifelse(df_experimento$Localidad == "Loc2", 0.5, 0) + ifelse(df_experimento$Variedad == "Var2", 0.5, ifelse(df_experimento$Variedad == "Var3", -0.5, 0)) + rnorm(nrow(df_experimento), mean = 0, sd = 1.2) # Ejecutar la funcion agrobox agrobox( data = df_experimento, test = "Duncan", factor = "Fertilizante", factor2 = "Dosis", orden_factor = c("A", "C", "B"), bloque = "Bloque", variable = "tn_ha", niveles_factor = c("A" = "Nitrato de amonio", "B" = "Fosfato diamonico", "C" = "Sulfato de amonio"), titulo = "Rendimiento (tn/ha)", estructura = "Localidad~Variedad", #se realizara un ANOVA y un TEST POST-HOC por cada grupo. lim_sup = NULL, lim_inf = NULL, colores = c("A" = "#1b9e77", "B" = "#d95f02", "C" = "#7570b3") )$plot
Escribe una tabla individual o una lista de tablas en un archivo Excel (.xlsx). Cuando se trata de una lista, cada elemento se exporta como una hoja distinta.
agroexcel(x, file = "resultados_agro.xlsx")agroexcel(x, file = "resultados_agro.xlsx")
x |
data.frame o lista de data.frames. |
file |
nombre del archivo Excel de salida. |
Invisiblemente TRUE si el archivo se genera correctamente.
## Not run: # Ejemplo 1: tabla simple desde agrobox aa <- agrobox( data = antigua2, variable = "harvwt", factor = "trt", test = "Duncan" ) write_agro_excel(aa$tabla, file = "tabla_simple.xlsx") # Ejemplo 2: lista de tablas desde agrosintesis res <- agrosintesis( data = df_multi, variables = c("tn_ha", "peso_fruto"), estructura = "Variedad~Localidad", factor = "Fertilizante", factor2 = "Dosis", bloque = "Bloque", test = "Tukey" ) write_agro_excel(res, file = "resultados_clusters.xlsx") ## End(Not run)## Not run: # Ejemplo 1: tabla simple desde agrobox aa <- agrobox( data = antigua2, variable = "harvwt", factor = "trt", test = "Duncan" ) write_agro_excel(aa$tabla, file = "tabla_simple.xlsx") # Ejemplo 2: lista de tablas desde agrosintesis res <- agrosintesis( data = df_multi, variables = c("tn_ha", "peso_fruto"), estructura = "Variedad~Localidad", factor = "Fertilizante", factor2 = "Dosis", bloque = "Bloque", test = "Tukey" ) write_agro_excel(res, file = "resultados_clusters.xlsx") ## End(Not run)
Aplica agrobox() a una o varias variables y consolida
las tablas resumen. Permite análisis por clusters cuando se
define una estructura.
agrosintesis(data, variables, estructura = NULL, ...)agrosintesis(data, variables, estructura = NULL, ...)
data |
data.frame con los datos experimentales. |
variables |
vector de nombres de variables respuesta. |
estructura |
fórmula en texto tipo "Factor1~Factor2" para clusters. |
... |
argumentos adicionales pasados a |
Un data.frame si no hay clusters, o una lista de data.frames
si se define estructura.
Genera una imagen PNG de alta calidad a partir de una tabla (data.frame)
o una lista de tablas (por ejemplo salida de agrosintesis()),
utilizando LaTeX para el renderizado y convirtiendo el PDF resultante
en imagen.
agrotabla(x, out_dir = getwd(), file_stub = "TABLA", dpi = 600)agrotabla(x, out_dir = getwd(), file_stub = "TABLA", dpi = 600)
x |
data.frame o lista de data.frames. Puede ser |
out_dir |
directorio donde se guardaran los archivos generados. |
file_stub |
nombre base del archivo cuando |
dpi |
resolucion en puntos por pulgada usada al convertir PDF a PNG. |
Esta funcion esta pensada para generar reportes rapidos y elegantes. Debido a que crea archivos PDF y PNG, sus ejemplos no se ejecutan automaticamente durante los checks de CRAN.
Los nombres de archivos se sanitizan automaticamente para ser compatibles con Windows, LaTeX y sistemas de archivos estandar. Los guiones bajos en los encabezados de columnas se escapan para evitar errores de compilacion LaTeX.
Invisiblemente TRUE si la exportacion se realiza correctamente.
## Not run: # Ejemplo 1: tabla individual desde agrobox aa <- agrobox( data = antigua2, variable = "harvwt", factor = "trt", test = "Duncan" ) write_rapido( aa$tabla, out_dir = "reportes_png", file_stub = "Rendimiento_site" ) # Ejemplo 2: multiples tablas desde agrosintesis res <- agrosintesis( data = df_multi, variables = c("tn_ha", "peso_fruto"), estructura = "Variedad~Localidad", factor = "Fertilizante", factor2 = "Dosis", bloque = "Bloque", test = "Tukey" ) write_rapido( res, out_dir = "png_clusters" ) ## End(Not run)## Not run: # Ejemplo 1: tabla individual desde agrobox aa <- agrobox( data = antigua2, variable = "harvwt", factor = "trt", test = "Duncan" ) write_rapido( aa$tabla, out_dir = "reportes_png", file_stub = "Rendimiento_site" ) # Ejemplo 2: multiples tablas desde agrosintesis res <- agrosintesis( data = df_multi, variables = c("tn_ha", "peso_fruto"), estructura = "Variedad~Localidad", factor = "Fertilizante", factor2 = "Dosis", bloque = "Bloque", test = "Tukey" ) write_rapido( res, out_dir = "png_clusters" ) ## End(Not run)