Performs a joint analysis of variance to check for the presence of genotype-vs-environment interactions using both randomized complete block and alpha-lattice designs.

anova_joint(.data, env, gen, rep, resp, block = NULL, verbose = TRUE)

Arguments

.data

The dataset containing the columns related to Environments, Genotypes, replication/block and response variable(s).

env

The name of the column that contains the levels of the environments. The analysis of variance is computed for each level of this factor.

gen

The name of the column that contains the levels of the genotypes.

rep

The name of the column that contains the levels of the replications/blocks.

resp

The response variable(s). To analyze multiple variables in a single procedure a vector of variables may be used. For example resp = c(var1, var2, var3).

block

Defaults to NULL. In this case, a randomized complete block design is considered. If block is informed, then a resolvable alpha-lattice design (Patterson and Williams, 1976) is employed. All effects, except the error, are assumed to be fixed.

verbose

Logical argument. If verbose = FALSE the code will run silently.

Value

A list where each element is the result for one variable containing the following objects:

  • anova: The two-way ANOVA table

  • model: The model of class lm.

  • augment: Information about each observation in the dataset. This includes predicted values in the fitted column, residuals in the resid column, standardized residuals in the stdres column, the diagonal of the 'hat' matrix in the hat, and standard errors for the fitted values in the se.fit column.

  • details: A tibble with the following data: Ngen, the number of genotypes; OVmean, the grand mean; Min, the minimum observed (returning the genotype and replication/block); Max the maximum observed, MinGEN the loser winner genotype, MaxGEN, the winner genotype.

References

Patterson, H.D., and E.R. Williams. 1976. A new class of resolvable incomplete block designs. Biometrika 63:83-92.

See also

Author

Tiago Olivoto tiagoolivoto@gmail.com

Examples

# \donttest{ library(metan) # traditional usage approach j_an <- anova_joint(data_ge, env = ENV, gen = GEN, rep = REP, resp = everything())
#> variable GY #> --------------------------------------------------------------------------- #> Joint ANOVA table #> --------------------------------------------------------------------------- #> Source Df Sum Sq Mean Sq F value Pr(>F) #> ENV 13.00 279.57 21.5057 62.33 0.00e+00 #> REP(ENV) 28.00 9.66 0.3451 3.57 3.59e-08 #> GEN 9.00 13.00 1.4439 14.93 2.19e-19 #> GEN:ENV 117.00 31.22 0.2668 2.76 1.01e-11 #> Residuals 252.00 24.37 0.0967 NA NA #> CV(%) 11.63 NA NA NA NA #> MSR+/MSR- 6.71 NA NA NA NA #> OVmean 2.67 NA NA NA NA #> --------------------------------------------------------------------------- #> #> variable HM #> --------------------------------------------------------------------------- #> Joint ANOVA table #> --------------------------------------------------------------------------- #> Source Df Sum Sq Mean Sq F value Pr(>F) #> ENV 13.00 5710 439.26 57.22 1.11e-16 #> REP(ENV) 28.00 215 7.68 2.70 2.20e-05 #> GEN 9.00 270 29.98 10.56 7.41e-14 #> GEN:ENV 117.00 1101 9.41 3.31 1.06e-15 #> Residuals 252.00 716 2.84 NA NA #> CV(%) 3.50 NA NA NA NA #> MSR+/MSR- 5.24 NA NA NA NA #> OVmean 48.09 NA NA NA NA #> --------------------------------------------------------------------------- #> #> All variables with significant (p < 0.05) genotype-vs-environment interaction #> Done!
# Predicted values get_model_data(j_an)
#> Class of the model: anova_joint
#> Variable extracted: fitted
#> # A tibble: 420 x 6 #> ENV GEN REP factors GY HM #> <fct> <fct> <fct> <chr> <dbl> <dbl> #> 1 E1 G1 1 G1_1 2.42 46.5 #> 2 E1 G1 2 G1_2 2.40 46.0 #> 3 E1 G1 3 G1_3 2.27 47.1 #> 4 E1 G2 1 G2_1 2.96 45.4 #> 5 E1 G2 2 G2_2 2.94 44.8 #> 6 E1 G2 3 G2_3 2.81 45.9 #> 7 E1 G3 1 G3_1 2.95 45.9 #> 8 E1 G3 2 G3_2 2.92 45.3 #> 9 E1 G3 3 G3_3 2.80 46.4 #> 10 E1 G4 1 G4_1 2.65 48.3 #> # ... with 410 more rows
# Details get_model_data(j_an, "details")
#> Class of the model: anova_joint
#> Variable extracted: details
#> # A tibble: 10 x 3 #> Parameters GY HM #> <chr> <chr> <chr> #> 1 Mean "2.67" "48.09" #> 2 SE "0.05" "0.21" #> 3 SD "0.92" "4.37" #> 4 CV "34.56" "9.09" #> 5 Min "0.67 (G10 in E11)" "38 (G2 in E14)" #> 6 Max "5.09 (G8 in E5)" "58 (G8 in E11)" #> 7 MinENV "E11 (1.37)" "E14 (41.03)" #> 8 MaxENV "E3 (4.06)" "E11 (54.2)" #> 9 MinGEN "G10 (2.47) " "G2 (46.66) " #> 10 MaxGEN "G8 (3) " "G5 (49.3) "
# }