Learn R Programming

agridat (version 1.23)

cullis.earlygen: Early generation variety trial in wheat

Description

Early generation variety trial in wheat

Arguments

Format

A data frame with 670 observations on the following 5 variables.

gen

genotype factor

row

row

col

column

entry

entry (genotype) number

yield

yield of each plot, kg/ha

weed

weed score

Details

The data are from a field experiment conducted at Tullibigeal, New South Wales, Australia in 1987-88. The aim of these trials is to identify and retain the top (10-20 percent) lines for further testing.

Most genotypes are unreplicated, with some augmented genotypes. In each row, every 6th plot was variety 526 = 'Kite'. Six other varieties 527-532 were randomly placed in the trial, with 3 to 5 plots of each. Each plot was 15m x 1.8m, "oriented with the longest side with rows".

The 'weed' variable is a visual score on a 0 to 10 scale, 0 = no weeds, 10 = 100 percent weeds.

Cullis et al. (1989) presented an analysis of early generation variety trials that included a one-dimensional spatial analysis. Below, a two-dimensional spatial analysis is presented.

Note: The 'row' and 'col' variables are as in the VSN link below (switched compared to the paper by Cullis et al.)

Field width: 10 rows * 15 m = 150 m

Field length: 67 plots * 1.8 m = 121 m

The orientation is not certain, but the alternative orientation would have a field roughly 20m x 1000m, which seems unlikely.

References

Unreplicated early generation variety trial in Wheat. https://www.vsni.co.uk/software/asreml/htmlhelp/asreml/xwheat.htm

Examples

Run this code
if (FALSE) {

  library(agridat)
  data(cullis.earlygen)
  dat <- cullis.earlygen

  # Show field layout of checks.  Cullis Table 1.
  dat$check <- ifelse(dat$entry < 8, dat$entry, NA)
  libs(desplot)
  desplot(dat, check ~ col*row,
          num=entry, cex=0.5, flip=TRUE, aspect=121/150, # true aspect
          main="cullis.earlygen (yield)")

  desplot(dat, yield ~ col*row,
          num="check", cex=0.5, flip=TRUE, aspect=121/150, # true aspect
          main="cullis.earlygen (yield)")

  grays <- colorRampPalette(c("white","#252525"))
  desplot(dat, weed ~ col*row,
          at=0:6-0.5, col.regions=grays(7)[-1],
          flip=TRUE, aspect=121/150, # true aspect
          main="cullis.earlygen (weed)")

  libs(lattice)
  bwplot(yield ~ as.character(weed), dat,
         horizontal=FALSE,
         xlab="Weed score", main="cullis.earlygen")

  # Moving Grid
  libs(mvngGrAd)
  shape <- list(c(1),
                c(1),
                c(1:4),
                c(1:4))
  # sketchGrid(10,10,20,20,shapeCross=shape, layers=1, excludeCenter=TRUE)
  m0 <- movingGrid(rows=dat$row, columns=dat$col, obs=dat$yield,
                   shapeCross=shape, layers=NULL)
  dat$mov.avg <- fitted(m0)

  if(require("asreml", quietly=TRUE)) {
    libs(asreml,lucid)

    # Start with the standard AR1xAR1 analysis
    dat <- transform(dat, xf=factor(col), yf=factor(row))
    dat <- dat[order(dat$xf, dat$yf),]
    m2 <- asreml(yield ~ weed, data=dat, random= ~gen,
                 resid = ~ ar1(xf):ar1(yf))
    
    # Variogram suggests a polynomial trend
    m3 <- update(m2, fixed= yield~weed+pol(col,-1))
    
    # Now add a nugget variance
    m4 <- update(m3, random= ~ gen + units)
    
    lucid::vc(m4)
    ##       effect component std.error z.ratio bound 
    ##          gen  73780    10420         7.1     P 0  
    ##        units  30440     8073         3.8     P 0.1
    ##     xf:yf(R)  54730    10630         5.1     P 0  
    ## xf:yf!xf!cor      0.38     0.115     3.3     U 0  
    ## xf:yf!yf!cor      0.84     0.045    19       U 0  
    
    ## # Predictions from models m3 and m4 are non-estimable.  Why?
    ## # Use model m2 for predictions
    ## predict(m2, classify="gen")$pvals
    ## ##         gen predicted.value std.error    status
    ## ## 1     Banks        2723.534  93.14719 Estimable
    ## ## 2    Eno008        2981.056 162.85241 Estimable
    ## ## 3    Eno009        2978.008 161.57129 Estimable
    ## ## 4    Eno010        2821.399 153.96943 Estimable
    ## ## 5    Eno011        2991.612 161.53507 Estimable
    
    
    ## # Compare AR1 with Moving Grid
    ## dat$ar1 <- fitted(m2)
    ## head(dat[ , c('yield','ar1','mov.avg')])
    ## ##    yield      ar1       mg
    ## ## 1   2652 2467.980 2531.998
    ## ## 11  3394 3071.681 3052.160
    ## ## 21  3148 2826.188 2807.031
    ## ## 31  3426 3026.985 3183.649
    ## ## 41  3555 3070.102 3195.910
    ## ## 51  3453 3006.352 3510.511
    ## pairs(dat[ , c('yield','ar1','mg')])
  }
  
}

Run the code above in your browser using DataLab