## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(collapse = FALSE, comment = "", fig.width = 7, fig.height = 4.2,
                      dev = if (knitr::is_latex_output()) "cairo_pdf" else
                        if (requireNamespace("svglite", quietly = TRUE)) "svglite" else "png")
if (requireNamespace("DiallelAnalysisR", quietly = TRUE)) library(DiallelAnalysisR) else
  pkgload::load_all(export_all = FALSE, helpers = FALSE, quiet = TRUE)


## ----data---------------------------------------------------------------------
head(GriffingData1)
dim(GriffingData1)
with(data = GriffingData1, expr = table(Cross1, Cross2))[1:4, 1:4]


## ----analysis-----------------------------------------------------------------
fit <-
  Griffing(
      y          = Yield
    , Rep        = Rep
    , Cross1     = Cross1
    , Cross2     = Cross2
    , data       = GriffingData1
    , Method     = 1
    , Model      = 1
    , Reciprocal = c("combined", "split")[1]
    )
fit


## ----summary------------------------------------------------------------------
summary(fit)


## ----anova--------------------------------------------------------------------
knitr::kable(x = fit$ANOVA, digits = 3)


## ----effects------------------------------------------------------------------
round(x = fit$GCA, digits = 3)
round(x = fit$StdErr, digits = 3)


## ----plot-gca-----------------------------------------------------------------
plot(fit)


## ----plot-sca, fig.height = 5-------------------------------------------------
plot(fit, which = "sca")


## ----model-functions----------------------------------------------------------
summary(object = fit, top = 5)
head(confint(object = fit, parm = NULL, level = 0.95), 8)
predict(
    object  = fit
  , newdata = data.frame(Cross1 = c(3, 3), Cross2 = c(7, 8))
  , type    = c("gca", "full")[1]
  )


## ----residuals----------------------------------------------------------------
plot(x = fit, which = c("gca", "sca", "residuals", "qq")[3])
plot(x = fit, which = c("gca", "sca", "residuals", "qq")[4])


## ----table--------------------------------------------------------------------
data.table::as.data.table(fit, component = "ANOVA")

