Here is a minimal reprex.
library(metan)
data <-
structure(list(Year = c("Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1",
"Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1",
"Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y2", "Y2", "Y2", "Y2", "Y2",
"Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2",
"Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y1", "Y1", "Y1",
"Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1",
"Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y1", "Y2",
"Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2",
"Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2", "Y2",
"Y2"),
Location = c("L1", "L1", "L1", "L1", "L1", "L1", "L1",
"L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1",
"L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1",
"L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1",
"L1", "L1", "L1", "L1", "L1", "L1", "L1", "L1", "L2", "L2", "L2",
"L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2",
"L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2",
"L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2",
"L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2", "L2",
"L2"),
Environment = c("Y1_L1", "Y1_L1", "Y1_L1", "Y1_L1", "Y1_L1",
"Y1_L1", "Y1_L1", "Y1_L1", "Y1_L1", "Y1_L1", "Y1_L1", "Y1_L1",
"Y1_L1", "Y1_L1", "Y1_L1", "Y1_L1", "Y1_L1", "Y1_L1", "Y1_L1",
"Y1_L1", "Y1_L1", "Y1_L1", "Y1_L1", "Y1_L1", "Y2_L1", "Y2_L1",
"Y2_L1", "Y2_L1", "Y2_L1", "Y2_L1", "Y2_L1", "Y2_L1", "Y2_L1",
"Y2_L1", "Y2_L1", "Y2_L1", "Y2_L1", "Y2_L1", "Y2_L1", "Y2_L1",
"Y2_L1", "Y2_L1", "Y2_L1", "Y2_L1", "Y2_L1", "Y2_L1", "Y2_L1",
"Y2_L1", "Y1_L2", "Y1_L2", "Y1_L2", "Y1_L2", "Y1_L2", "Y1_L2",
"Y1_L2", "Y1_L2", "Y1_L2", "Y1_L2", "Y1_L2", "Y1_L2", "Y1_L2",
"Y1_L2", "Y1_L2", "Y1_L2", "Y1_L2", "Y1_L2", "Y1_L2", "Y1_L2",
"Y1_L2", "Y1_L2", "Y1_L2", "Y1_L2", "Y2_L2", "Y2_L2", "Y2_L2",
"Y2_L2", "Y2_L2", "Y2_L2", "Y2_L2", "Y2_L2", "Y2_L2", "Y2_L2",
"Y2_L2", "Y2_L2", "Y2_L2", "Y2_L2", "Y2_L2", "Y2_L2", "Y2_L2",
"Y2_L2", "Y2_L2", "Y2_L2", "Y2_L2", "Y2_L2", "Y2_L2", "Y2_L2"
),
Rep = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L),
Block = c("1", "1", "1", "1", "2", "2", "2", "2",
"3", "3", "3", "3", "1", "1", "1", "1", "2", "2", "2", "2", "3",
"3", "3", "3", "1", "1", "1", "1", "2", "2", "2", "2", "3", "3",
"3", "3", "1", "1", "1", "1", "2", "2", "2", "2", "3", "3", "3",
"3", "1", "1", "1", "1", "2", "2", "2", "2", "3", "3", "3", "3",
"1", "1", "1", "1", "2", "2", "2", "2", "3", "3", "3", "3", "1",
"1", "1", "1", "2", "2", "2", "2", "3", "3", "3", "3", "1", "1",
"1", "1", "2", "2", "2", "2", "3", "3", "3", "3"),
Treatment = c("G08",
"G09", "G01", "G10", "G02", "G04", "G05", "G12", "G07", "G11",
"G03", "G06", "G09", "G03", "G06", "G05", "G07", "G11", "G01",
"G02", "G04", "G08", "G10", "G12", "G07", "G10", "G05", "G12",
"G11", "G04", "G03", "G06", "G02", "G01", "G09", "G08", "G01",
"G04", "G09", "G12", "G02", "G07", "G03", "G10", "G11", "G05",
"G06", "G08", "G06", "G02", "G03", "G11", "G05", "G08", "G09",
"G07", "G10", "G12", "G01", "G04", "G02", "G07", "G08", "G12",
"G01", "G05", "G09", "G10", "G06", "G04", "G11", "G03", "G05",
"G12", "G11", "G10", "G03", "G01", "G06", "G09", "G08", "G07",
"G04", "G02", "G09", "G05", "G10", "G01", "G08", "G06", "G04",
"G12", "G11", "G07", "G02", "G03"),
GrainYield = c(5.32, 5.09,
4.56, 6.43, 5.4, 3.43, 5.56, 4.62, 4.15, 4.83, 4.18, 4.42, 4.5,
3.65, 5.67, 5.12, 4.09, 6, 5.34, 4.76, 5.72, 5.7, 5.66, 5.55,
5.62, 4.93, 5.2, 4.98, 4.97, 6.09, 4.82, 6.21, 3.76, 5.47, 5.1,
5.17, 5.3, 4.6, 4.73, 4.19, 4.14, 5.24, 5.36, 5.04, 5.74, 6.64,
4.61, 3.15, 4.82, 5.27, 5.88, 5.35, 4.74, 5.92, 5.79, 5.44, 5.19,
4.5, 6.09, 4.52, 6.75, 6.23, 4.81, 4.18, 4.43, 5.21, 4.8, 4.72,
4.24, 4.96, 4.37, 3.67, 5.09, 4.24, 4.61, 4.8, 6.48, 4.48, 5.19,
5.06, 4.23, 4.94, 6.16, 5.36, 5.03, 4.66, 3.36, 5.91, 3.83, 5.59,
6.53, 3.84, 5.56, 4.79, 3.74, 3.79)),
row.names = c(NA, -96L), class = "data.frame")
# Model 1 [Works]
waasb(data,
env = Environment,
gen = Treatment,
rep = Rep,
random = "gen",
resp = GrainYield)
#> Evaluating trait GrainYield |====================================| 100% 00:00:00
#> Method: REML/BLUP
#> Random effects: GEN, GEN:ENV
#> Fixed effects: ENV, REP(ENV)
#> Denominador DF: Satterthwaite's method
#> ---------------------------------------------------------------------------
#> P-values for Likelihood Ratio Test of the analyzed traits
#> ---------------------------------------------------------------------------
#> model GrainYield
#> COMPLETE NA
#> GEN 1.000
#> GEN:ENV 0.517
#> ---------------------------------------------------------------------------
#> Variables with nonsignificant GxE interaction
#> GrainYield
#> ---------------------------------------------------------------------------
# Model 2 [Works]
waasb(data,
env = Environment,
gen = Treatment,
rep = Rep,
random = "env",
resp = GrainYield)
#> Evaluating trait GrainYield |====================================| 100% 00:00:00
#> Method: REML/BLUP
#> Random effects: REP(ENV), ENV, GEN:ENV
#> Fixed effects: GEN
#> Denominador DF: Satterthwaite's method
#> ---------------------------------------------------------------------------
#> P-values for Likelihood Ratio Test of the analyzed traits
#> ---------------------------------------------------------------------------
#> model GrainYield
#> COMPLETE NA
#> REP(ENV) 1.000
#> ENV 1.000
#> GEN:ENV 0.485
#> ---------------------------------------------------------------------------
#> Variables with nonsignificant GxE interaction
#> GrainYield
#> ---------------------------------------------------------------------------
# Model 3 [Works]
waasb(data,
env = Environment,
gen = Treatment,
rep = Rep,
random = "all",
resp = GrainYield)
#> Evaluating trait GrainYield |====================================| 100% 00:00:00
#> Method: REML/BLUP
#> Random effects: GEN, REP(ENV), ENV, GEN:ENV
#> Fixed effects: -
#> Denominador DF: Satterthwaite's method
#> ---------------------------------------------------------------------------
#> P-values for Likelihood Ratio Test of the analyzed traits
#> ---------------------------------------------------------------------------
#> model GrainYield
#> COMPLETE NA
#> GEN 1.000
#> REP(ENV) 1.000
#> ENV 1.000
#> GEN:ENV 0.674
#> ---------------------------------------------------------------------------
#> Variables with nonsignificant GxE interaction
#> GrainYield
#> ---------------------------------------------------------------------------
# Model 4 [Not working]
waasb(data,
env = Environment,
gen = Treatment,
rep = Rep,
block = Block,
random = "gen",
resp = GrainYield)
#> Error in `separate()`:
#> Caused by error:
#> ! object 'Names' not found
# Model 5 [Not working]
waasb(data,
env = Environment,
gen = Treatment,
rep = Rep,
block = Block,
random = "env",
resp = GrainYield)
#> Error in `separate()`:
#> Caused by error:
#> ! object 'Names' not found
# Model 6 [Not working]
waasb(data,
env = Environment,
gen = Treatment,
rep = Rep,
block = Block,
random = "all",
resp = GrainYield)
#> Error in `separate()`:
#> Caused by error:
#> ! object 'Names' not found
The function
waasb()is not working with alpha lattice designs (Models 4, 5 and 6).This is because of the use of
"BLOCK:(REP:ENV)"instead of"BLOCK:REP:ENV"for creation of theblupBREdata frame.Here is a minimal reprex.