r i = {{i}}

{{i+1}}. Analysis for trait r traits[i]

# Check design

lc <- ck.rcbd(traits[i], geno, rep, dfr)

# Fit a model for assumptions plots

model <- aov(dfr[, traits[i]] ~ dfr[, geno] + dfr[, rep])

# Estimate missing values

trait.est <- paste0(traits[i], ".est")

if (lc$nmis > 0) {
  dfr[, trait.est] <- mve.rcbd(traits[i], geno, rep, dfr, maxp)[, trait.est]
} else {
  dfr[, trait.est] <- dfr[, traits[i]]
}

# Get anova table with estimated missing values

at <- suppressWarnings(aov.rcbd(traits[i], geno, rep, dfr, maxp))

# CV

cv <- (at[3, 3])^0.5 / mean(dfr[, trait.est]) * 100

{{i+1}}.1. ANOVA

You have fitted a linear model for a RCBD. The ANOVA table for your model is:

at

r if(lc$nmis > 0) paste0("You have some missing values (", format(lc$pmis * 100, digits = 3), "%) and they have been estimated before running ANOVA.")

The coefficient of variation for this experiment is r format(cv, digits = 4)%. The p-value for genotypes is r format(at[1, 5], digits = 4) r if(at[1, 5] < 0.05) {"which is significant at the 5% level."} else {"which is not significant at the 5% level."}

{{i+1}}.2. Assumptions

Don't forget the assumptions of the model. It is supposed that the errors are independent with a normal distribution and with the same variance for all the genotypes. The following plots must help you evaluate this:

par(mfrow = c(1, 2))
plot(model, which = 1)
plot(model, which = 2)

Any trend in the residuals in the left plot would violate the assumption of independence while a trend in the variability of the residuals --for instance a funnel shape-- suggests heterogeneity of variances. Departures from the theoretical normal line on the right plot are symptoms of lack of normality.

{{i+1}}.3. Genotype means

r if(at[1, 5] < 0.05) {"Below are the sorted means for each genotype with letters indicating if there are significant differences using the least significance difference method and the multiple comparisons method of Tukey, both at the 5% level."} else {"Because the effect of genotypes was not significant in the ANOVA, multiple comparison tests are not presented. The means of your genotypes are:"}

r if (at[1, 5] < 0.05) {paste0("### ", {{i+1}}, ".3.1. LSD test")}

if (at[1, 5] < 0.05)
  agricolae::LSD.test(dfr[, trait.est], dfr[, geno], at[3, 1], at[3, 3])$groups

r if (at[1, 5] < 0.05) {paste0("### ", {{i+1}}, ".3.2. Tukey test")}

if (at[1, 5] < 0.05)
  agricolae::HSD.test(dfr[, trait.est], dfr[, geno], at[3, 1], at[3, 3])$groups
if (at[1, 5] > 0.05)
    tapply(dfr[, trait.est], dfr[, geno], mean)

r if (lc$ng < 10 & at[1, 5] < 0.05) {paste0("### ", {{i+1}}, ".3.3. Plot of means")}

r if(lc$ng < 10) {"It is always good to have some visualization of the data. Because the number of genotypes in your experiment is not so big, we can plot the data for each genotype:"}

if (lc$ng < 10) msdplot(traits[i], geno, dfr, conf = 1, pch = 4)

{{i+1}}.4. Variance components

Below are the variance components for this model, under the assumption that genotypes and blocks are random. Here the model is fitted using REML and missing values are not estimated.

y <- dfr[, traits[i]]
fg <- dfr[, geno]
fr <- dfr[, rep]
ff <- as.formula(y ~ (1|fg) + (1|fr))
model <- lme4::lmer(ff)
vc <- data.frame(lme4::VarCorr(model))
vc[vc[, 1] == "fg", 1] <- geno
vc[vc[, 1] == "fr", 1] <- rep
rownames(vc) <- vc[, 1]
vc <- vc[, c(4, 5)]
colnames(vc) <- c("Variance", "Std.Dev.")
vc


CIP-RIU/hidap documentation built on April 30, 2021, 9:21 p.m.