Type: Package
Title: Data Visualization and Statistical Tools for Agroindustrial Experiments
Version: 0.2.0
Maintainer: Joaquin Alejandro Salinas Angeles <joaquinsa03@gmail.com>
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.
License: MIT + file LICENSE
Encoding: UTF-8
Language: en, es
Depends: R (≥ 3.5.0)
Imports: dplyr, ggplot2, tidyr, stringr, agricolae, stats, pwr, rlang, kableExtra, magick, tinytex, openxlsx
Suggests: testthat (≥ 3.0.0)
Config/testthat/edition: 3
RoxygenNote: 7.3.3
URL: https://github.com/Joa3aquin50/agrobox
BugReports: https://github.com/Joa3aquin50/agrobox/issues
NeedsCompilation: no
Packaged: 2026-01-07 02:50:52 UTC; JOAQUIN SALINAS
Author: Joaquin Alejandro Salinas Angeles ORCID iD [aut, cre]
Repository: CRAN
Date/Publication: 2026-01-08 04:30:02 UTC

Genera un grafico y analisis estadistico por grupo

Description

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).

Usage

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
)

Arguments

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'.

Value

Una lista con:

plot

Objeto 'ggplot' con el grafico generado.

levels

Niveles del factor utilizados.

Examples

# 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


Exporta tablas agrobox o agrosintesis a Excel

Description

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.

Usage

agroexcel(x, file = "resultados_agro.xlsx")

Arguments

x

data.frame o lista de data.frames.

file

nombre del archivo Excel de salida.

Value

Invisiblemente TRUE si el archivo se genera correctamente.

Examples

## 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)


Sintetiza resultados estadísticos para múltiples variables

Description

Aplica agrobox() a una o varias variables y consolida las tablas resumen. Permite análisis por clusters cuando se define una estructura.

Usage

agrosintesis(data, variables, estructura = NULL, ...)

Arguments

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 agrobox().

Value

Un data.frame si no hay clusters, o una lista de data.frames si se define estructura.


Exporta tablas de resultados a PNG via LaTeX (modo rapido)

Description

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.

Usage

agrotabla(x, out_dir = getwd(), file_stub = "TABLA", dpi = 600)

Arguments

x

data.frame o lista de data.frames. Puede ser aa$tabla o una lista producida por agrosintesis().

out_dir

directorio donde se guardaran los archivos generados.

file_stub

nombre base del archivo cuando x es una tabla unica.

dpi

resolucion en puntos por pulgada usada al convertir PDF a PNG.

Details

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.

Value

Invisiblemente TRUE si la exportacion se realiza correctamente.

Examples

## 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)

mirror server hosted at Truenetwork, Russian Federation.