Description Usage Format Source References Examples
A student of plant pathology studied the ‘weed suppressiveness’ of
tree soil
s. David Maxwell examined the sensitivity of ‘Rutgers’
variety tomato, known to be sensitive to biological factors, to
several different soil
s. Three of the soil
s (vermix,
promix
and grnhous
) are in a certain sense controls, the first
two being artificial and the third coming from a controlled
environment. A fourth soil
contained only grass
. The
other four are of particular interest, as the scientist wants to know
whether soil
from tree nm-6
is better (lower score
)
than those of the other three trees. The score
was the number
of germinating tomato seeds out of ten planted. In addition, the mean
height
of seedlings was measured at different times.
For each type of soil
, there were six soil
samples
(reps(soil)
). These soil
samples were inoculated with pathogen.
Then these soil
samples were split (acc
), with one half
autoclaved (sterilized) and the other half not. Thus there were
12 half-samples (acc*reps(soil)
). Each of these 12 half-samples
was placed in storage and score
d on six different date
s.
In addition, the mean height
of seedlings was measured at three
of these times. The primary focus is on the half-samples that were
not autoclaved.
1 2 |
TreeAve data frame with 48 observations on 4 variables.
[,1] | soil | factor | soil type |
[,2] | reps | factor | replicate number |
[,3] | score | numeric | germinating tomatoes of 10 |
[,4] | height | numeric | mean plant height |
Tree data frame with 96 observations on 12 variables.
[,1] | soil | factor | soil type |
[,2] | reps | factor | replicate number |
[,3] | acc | factor | autoclaved or not |
[,4] | score1 | numeric | germination at time 1 |
[,5] | score2 | numeric | germination at time 2 |
[,6] | score3 | numeric | germination at time 3 |
[,4] | ht1 | numeric | mean plant height at time 3 |
[,6] | score4 | numeric | germination at time 4 |
[,4] | ht2 | numeric | mean plant height at time 4 |
[,6] | score5 | numeric | germination at time 5 |
[,4] | ht3 | numeric | mean plant height at time 5 |
[,6] | score6 | numeric | germination at time 6 |
David Maxwell, Plant Pathology Department, UW-Madison
Maxwell DL and Stanosz G (1996) 'Assay to determine if weed suppressiveness is an inherent property of soil in which NM-6 is growing', Department of Plant Pathology, University of Wisconsin-Madison.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | # Analysis Averaged over Time
data( TreeAve )
# soil is automatically a factor() since it has characters
TreeAve.aov <- aov( score ~ soil, TreeAve)
summary( TreeAve.aov )
#plot( TreeAve.aov )
boxplot( split( TreeAve$score, TreeAve$soil))
# Analysis over Time
data( Tree )
Tree <- Tree[ Tree$acc == "notauto", ]
Tree$acc <- NULL
Tree$type <- factor( !is.na( match( Tree$soil,
c("dtac2","nc11004","ne-332","nm-6") )))
Tree$reps <- factor( Tree$reps )
Trees <- Tree[ rep( seq( nrow( Tree ) ), 6 ), c("soil","reps","type") ]
Trees$date <- ordered( rep( 1:6, rep( nrow( Tree ), 6 ) ) )
Trees$score <- unlist( Tree[ , paste( "score", 1:6, sep="" ) ] )
row.names(Trees) <- interaction( Trees[, c("soil","reps","date") ] )
Trees.soil <- aov(score ~ soil * date + Error(reps/soil), Trees )
# combined (sort of)
Trees.all <- aov( score ~ soil * date, Trees )
# Figure I:25.1 Tree scores over time by soil type
Tree.lsm <- lsmean( Trees.all, factors = c("soil","date") )
Tree.lsm$type <- factor( !is.na( match( Tree.lsm$soil,
c("dtac2","nc11004","ne-332","nm-6") ) ) )
Tree.lsm <- split( Tree.lsm, Tree.lsm$type )
# following values are SE for means taken for SAS output
Tree.lsm[[1]]$se <- rep( .84086871, nrow( Tree.lsm[[1]] ) )
Tree.lsm[[2]]$se <- rep( .63433993, nrow( Tree.lsm[[2]] ) )
Tree.data <- split( Trees, Trees$type )
Tree.xlab <- c("(b) control","(a) Tree")
Tree.ylab <- c("","score means")
Tree.ylim = range( pretty( c( Tree.lsm[[1]]$pred, Tree.lsm[[2]]$pred )))
for( i in 2:1 ) { # "FALSE" comes before "TRUE"
int.plot( Trees.all, Tree.data[[i]], c("date","soil"),
Tree.lsm[[i]], bar.plot = "none", ylim = Tree.ylim,
panelf = function(...) {
se.bar( 4.5, 2, Tree.lsm[[i]]$se[1] )
Tree.tmp <- Tree.lsm[[i]][Tree.lsm[[i]]$date==6,]
panel.text( rep( 4.5, nrow( Tree.tmp ) ),
0.25 + Tree.tmp$pred,
as.character( Tree.tmp$soil ), adj = 0 )
},
xlab = paste( Tree.xlab[i], "soils by date" ),
ylab = Tree.ylab[i],
more = (i == 2), split = c(3-i,1,2,1) )
}
rm( Tree.data, Tree.xlab, Tree.ylab, Tree.lsm )
# Figure I:25.2 Tree whole plot experimental units
Tree.xlab <- c("(b) control","(a) Tree")
Tree.ylab <- c("","soil sample means")
library(lme4)
Trees.lme <- lmer(score ~ soil * date + (1|reps:soil), data = Trees )
VarCorr( Trees.lme )
anova( Trees.lme )
## Not run:
# projections (*** CAUTION: SLOW ***)
# This works for now in Splus but not in R!
Trees.type <- aov(score ~ type/soil * date +
Error(reps %in% soil %in% type), Trees, proj = TRUE )
Trees.proj <- proj ( Trees.type )
# whole plot
Trees.wp <- nested( Trees.proj, Trees, c("type","soil","reps"), "score",
c(1,2), Trees.ref )
Trees.wpaov <- aov( score ~ soil, Trees.wp )
Tree.grmean <- lsmean( Trees.wpaov, fac = NULL )$pred
Tree.lsm <- lsmean( Trees.wpaov, factors = "soil" )
Tree.lsm$type <- factor( !is.na( match( Tree.lsm$soil,
c("dtac2","nc11004","ne-332","nm-6") ) ) )
Tree.lsm <- split( Tree.lsm, Tree.lsm$type )
Tree.data <- split( Trees.wp, Trees.wp$type )
for ( i in 2:1 ) { # "FALSE" comes before "TRUE"
Tree.lsm[[i]]$rank <- rank( -Tree.lsm[[i]]$pred )
# have to be careful about levels of soil in type subsets
Tree.data[[i]]$soil <- factor( Tree.data[[i]]$soil )
attach( Tree.data[[i]] )
names( Tree.lsm[[i]]$rank ) <- unique( soil )
plot( jitter( Tree.lsm[[i]]$rank[soil] ), score, xaxt = "n",
ylim = range( Trees.wp$score ),
xlab = paste( Tree.xlab[i], "soil sample means" ),
ylab = Tree.ylab[i] )
detach()
axis( 1, Tree.lsm[[i]]$rank, row.names( Tree.lsm[[i]] ) )
abline( h = Tree.grmean, lty = 3 )
}
axis( 1, Tree.lsm[[1]]["grnhous","rank"], "grnhous" )
rm( Tree.data, Tree.xlab, Tree.ylab, Tree.grmean, Tree.lsm )
# Figure I:25.3 Tree repeated measures within soil sample
Trees.ref <- data.frame( Reference = c( Trees.proj[[1]] ))
for (i in names( Trees.proj )[-1])
Trees.ref[[i]] <- apply( Trees.proj[[i]], 1, sum )
# split plot
Trees.sp <- nested( Trees.proj, Trees, c("type","soil","reps","date"),
"score", c(1,3), Trees.ref )
Trees.spaov <- aov( score ~ reps*soil + date + date:soil, Trees.sp )
# split plot with time trend removed
Trees.sp$res <- resid( aov( score ~ reps*soil + date, Trees.sp ) ) +
lsmean( Trees.spaov, fac=NULL )$pred
Trees.spres <- aov( res ~ reps*soil + date + date:soil, Trees.sp )
Tree.lsm <- lsmean( Trees.spaov, factors = c("soil","date") )
Tree.lsm$type <- factor( !is.na( match( Tree.lsm$soil,
c("dtac2","nc11004","ne-332","nm-6") ) ) )
Tree.lsm <- split( Tree.lsm, Tree.lsm$type )
# following values are SE for contrasts taken from SAS output
Tree.lsm[[1]]$se <- rep( .42023472 / sqrt( 2 ), nrow( Tree.lsm[[1]] ) )
Tree.lsm[[2]]$se <- rep( .35818796 / sqrt( 2 ), nrow( Tree.lsm[[2]] ) )
Tree.data <- split( Trees.sp, Trees.sp$type )
Tree.xlab <- c("(b) control","(a) Tree")
Tree.ylab <- c("","pure split plot score")
for ( i in 2:1 ) { # "FALSE" comes before "TRUE"
lsd.plot( Trees.spaov, Tree.data[[i]], c("date","soil"),
Tree.lsm[[i]],
xpos = 6, xlim = c(1,7.7), ylim = range( Tree.lsm$pred ),
xaxt = "n", xlab = paste( Tree.xlab[i], "soils by date" ),
ylab = Tree.ylab[i] )
axis(1,1:6)
Tree.tmp <- Tree.lsm[[i]][Tree.lsm[[i]]$date==6,]
text( rep( 6.2, nrow( Tree.tmp ) ),
uncollide( Tree.tmp$pred, c(.7,1.6)[i] ),
as.character( Tree.tmp$soil ), adj = 0 )
}
rm( Tree.data, Tree.xlab, Tree.ylab, Tree.lsm, Tree.tmp )
# Figure I:25.4 Tree detrended repeated measures
Tree.lsm <- lsmean( Trees.spres, factors = c("soil","date") )
Tree.lsm$type <- factor( !is.na( match( Tree.lsm$soil,
c("dtac2","nc11004","ne-332","nm-6") ) ) )
Tree.lsm <- split( Tree.lsm, Tree.lsm$type )
# following values are SE for contrasts take for SAS output
Tree.lsm[[1]]$se <- rep( .42023472 / sqrt( 2 ), nrow( Tree.lsm[[1]] ) )
Tree.lsm[[2]]$se <- rep( .35818796 / sqrt( 2 ), nrow( Tree.lsm[[2]] ) )
Tree.data <- split( Trees.sp, Trees.sp$type )
Tree.xlab <- c("(b) control","(a) Tree")
Tree.ylab <- c("","pure split plot score")
for ( i in 2:1 ) { # "FALSE" comes before "TRUE"
lsd.plot( Trees.spres, Tree.data[[i]], c("date","soil"), Tree.lsm[[i]],
xpos = 4.5, ypos = 4.25,
xlim = c(1,7.7), ylim = range( Tree.lsm$pred ),
xaxt = "n",
xlab = paste( Tree.xlab[i], "soils by date" ),
ylab = Tree.ylab[i] )
axis(1,1:6)
Tree.tmp <- Tree.lsm[[i]][ Tree.lsm[[i]]$date == 6, ]
text( rep( 6.2, nrow( Tree.tmp ) ),
uncollide( Tree.tmp$pred, c(.3,.6)[i] ),
as.character( Tree.tmp$soil ), adj = 0 )
}
rm( Tree.data, Tree.xlab, Tree.ylab, Tree.lsm, Tree.tmp )
# Figure I:26.1 Tree partial correlations over time
Tree.tmpc <- length( unique( Trees.sp$date ))
Tree.tmpr <- nrow( Trees.sp ) / Tree.tmpc
Tree.tmp <- matrix( resid( Trees.spaov ), Tree.tmpr, Tree.tmpc )
Tree.tmpid <- c("C","T")[ codes( Trees.sp$type[1:Tree.tmpr] ) ]
splom( Tree.tmp, varnames = as.character( unique( Trees.sp$date )),
groups = Tree.tmpid )
rm( Tree.tmp, Tree.tmpr, Tree.tmpc )
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.