Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Package Dae': R Topics Documented

Download as pdf or txt
Download as pdf or txt
You are on page 1of 129

Package ‘dae’

May 15, 2019


Version 3.0-32
Date 2019-05-15
Title Functions Useful in the Design and ANOVA of Experiments
Depends R (>= 3.1.0), ggplot2
Imports graphics, methods, plyr, stats
Suggests testthat, R.rsp
VignetteBuilder R.rsp
Description The content falls into the following groupings: (i) Data, (ii)
Factor manipulation functions, (iii) Design functions, (iv) ANOVA functions, (v)
Matrix functions, (vi) Projector and canonical efficiency functions, and (vii)
Miscellaneous functions. There is a vignette describing how to use the
design functions for randomizing and assessing designs available as a
vignette called 'DesignNotes'. The ANOVA functions facilitate the extraction of
information when the 'Error' function has been used in the call to 'aov'.
The package 'dae' can also be installed from
<http://chris.brien.name/rpackages/>.
License GPL (>= 2)

URL http://chris.brien.name
RoxygenNote 5.0.1
NeedsCompilation no
Author Chris Brien [aut, cre] (<https://orcid.org/0000-0003-0581-1817>)
Maintainer Chris Brien <chris.brien@unisa.edu.au>
Repository CRAN
Date/Publication 2019-05-15 08:30:02 UTC

R topics documented:
dae-package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
ABC.Interact.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
as.data.frame.pstructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1
2 R topics documented:

as.numfac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
BIBDWheat.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
blockboundaryPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Casuarina.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
correct.degfree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
dae-deprecated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
daeTips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
decomp.relate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
degfree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
designAmeasures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
designAnatomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
designLatinSqrSys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
designPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
designPlotlabels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
designRandomize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
designTwophaseAnatomies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
detect.diff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
efficiencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
efficiency.criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Exp249.mplot.des . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
extab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
fac.ar1mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
fac.combine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
fac.divide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
fac.gen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
fac.layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
fac.match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
fac.meanop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
fac.nested . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
fac.recode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
fac.sumop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
fac.vcmat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Fac4Proc.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
fitted.aovlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
fitted.errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
get.daeTolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
harmonic.mean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
interaction.ABC.plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
is.allzero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
is.projector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
LatticeSquare_t49.des . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
marginality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
mat.ar1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
mat.ar2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
mat.ar3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
mat.arma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
mat.banded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
R topics documented: 3

mat.dirprod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
mat.dirsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
mat.exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
mat.gau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
mat.I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
mat.J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
mat.ma1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
mat.ma2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
mat.ncssvar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
mat.sar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
mat.sar2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
mat.Vpred . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
mat.Vpredicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
McIntyreTMV.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
meanop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
mpone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
no.reps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Oats.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
p2canon.object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
pcanon.object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
power.exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
print.aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
print.projector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
print.pstructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
print.summary.p2canon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
print.summary.pcanon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
proj2.combine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
proj2.efficiency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
proj2.eigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
projector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
projector-class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
projs.2canon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
projs.combine.p2canon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
pstructure.formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
pstructure.object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
qqyeffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
resid.errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
residuals.aovlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
rmvnorm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Sensory3Phase.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
set.daeTolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
show-methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
SPLGrass.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
strength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
summary.p2canon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
summary.pcanon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
tukey.1df . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
yates.effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
4 dae-package

Zncsspline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

Index 125

dae-package Functions Useful in the Design and ANOVA of Experiments

Description
The content falls into the following groupings: (i) Data, (ii) Factor manipulation functions, (iii) De-
sign functions, (iv) ANOVA functions, (v) Matrix functions, (vi) Projector and canonical efficiency
functions, and (vii) Miscellaneous functions. There is a vignette describing how to use the design
functions for randomizing and assessing designs available as a vignette called ’DesignNotes’. The
ANOVA functions facilitate the extraction of information when the ’Error’ function has been used in
the call to ’aov’. The package ’dae’ can also be installed from <http://chris.brien.name/rpackages/>.
Version: 3.0-32
Date: 2019-05-15

Index

(i) Data

ABC.Interact.dat Randomly generated set of values indexed by


three factors
BIBDWheat.dat Data for a balanced incomplete block experiment
Casuarina.dat Data for an experiment with rows and columns from
Williams (2002)
Exp249.mplot.des Systematic, main-plot design for an experiment to be
run in a greenhouse
Fac4Proc.dat Data for a 2^4 factorial experiment
LatticeSquare_t49.des A Lattice square design for 49 treatments
McIntyreTMV.dat The design and data from McIntyre (1955) two-phase
experiment
Oats.dat Data for an experiment to investigate nitrogen response
of 3 oats varieties
Sensory3Phase.dat Data for the three-phahse sensory evaluation
experiment in Brien, C.J. and Payne, R.W. (1999)
Sensory3PhaseShort.dat Data for the three-phase sensory evaluation
experiment in Brien, C.J. and Payne, R.W. (1999),
but with short factor names
SPLGrass.dat Data for an experiment to investigate the
effects of grazing patterns on pasture
composition

(ii) Factor manipulation functions

as.numfac Convert a factor to a numeric vector


dae-package 5

fac.combine Combines several factors into one


fac.divide Divides a factor into several individual factors
fac.gen Generate all combinations of several factors and,
optionally, replicate them
fac.match Match, for each combination of a set of columns
in ’x’, the row that has the same combination
in ’table’
fac.nested Creates a factor whose values are generated
within those of the factor nesting.fac
fac.recode Recodes factor ’levels’ using possibly nonunique
values in a vector.
mpone Converts the first two levels of a factor into
the numeric values -1 and +1

(iii) Design functions

blockboundaryPlot This function plots a block boundary on a plot


produced by ’designPlot’. It supersedes
blockboundary.plot.
designAmeasures Calculates the A-optimality measures from the
variance matrix for predictions that can be obtained
using mat.Vpredicts
designAnatomy Given the layout for a design, obtain its anatomy via
the canonical analysis of its projectors to show the
confounding and aliasing inherent in the design.
designLatinSqrSys Generate a systematic plan for a Latin Square design.
designPlot A graphical representation of an experimental design
using labels stored in a matrix.
It superseded design.plot.
designPlotlabels Plots labels on a two-way grid using ggplot2.
designRandomize Randomize allocated to recipient factors to produce
a layout for an experiment. It supersedes fac.layout.
designTwophaseAnatomies Given the layout for a design and three structure formulae,
obtain the anatomies for the two-phase, first-phase,
cross-phase and second-phase designs.
marginality.pstructure Extracts the marginality matrix from a
pstructure.object
marginality.pstructure Extracts a list containing the marginality matrices from
a pcanon.object
print.aliasing Prints an aliasing data.frame
no.reps Computes the number of replicates for an experiment
detect.diff Computes the detectable difference for an experiment
power.exp Computes the power for an experiment
summary.pcanon Summarizes the anatomy of a design, being the
decomposition of the sample space based on its
canonical analysis

(iv) ANOVA functions


6 dae-package

fitted.aovlist Extract the fitted values for a fitted model


from an aovlist object
fitted.errors Extract the fitted values for a fitted model
interaction.ABC.plot Plots an interaction plot for three factors
qqyeffects Half or full normal plot of Yates effects
resid.errors Extract the residuals for a fitted model
residuals.aovlist Extract the residuals from an aovlist object
strength Generate paper strength values
tukey.1df Performs Tukey’s
one-degree-of-freedom-test-for-nonadditivity
yates.effects Extract Yates effects

(v) Matrix functions

elements Extract the elements of an array specified by


the subscripts
fac.ar1mat Forms the ar1 correlation matrix for a
(generalized) factor
fac.sumop Computes the summation matrix that produces
sums corresponding to a (generalized) factor
fac.vcmat Forms the variance matrix for the variance
component of a (generalized) factor
mat.I Forms a unit matrix
mat.J Forms a square matrix of ones
mat.ar1 Forms an ar1 correlation matrix
mat.ar2 Forms an ar2 correlation matrix
mat.ar3 Forms an ar3 correlation matrix
mat.arma Forms an arma correlation matrix
mat.banded Forms a banded matrix
mat.exp Forms an exponential correlation matrix
mat.gau Forms a gaussian correlation matrix
mat.ma1 Forms an ma1 correlation matrix
mat.ma2 Forms an ma2 correlation matrix
mat.ncssvar Forms a variance matrix for random cubic
smoothing spline effects
mat.sar Forms an sar correlation matrix
mat.sar2 Forms an sar2 correlation matrix
mat.dirprod Forms the direct product of two matrices
mat.dirsum Forms the direct sum of a list of matrices
mat.Vpred Forms the variance matrix of predictions
mat.Vpredicts Forms the variance matrix of predictions,
based on supplied matrices or formulae.
Zncsspline Forms the design matrix for fitting the
random effects for a natural cubic smoothing
spline.

(vi) Projector and canonical efficiency functions


dae-package 7

Projector class:

projector Create projectors


projector-class Class projector
is.projector Tests whether an object is a valid object of
class projector
print.projector Print projectors
correct.degfree Check the degrees of freedom in an object of
class projector
degfree Degrees of freedom extraction and replacement

Accepts two or more formulae:

designAnatomy An anatomy of a design, obtained from


a canonical analysis of the relationships
between sets of projectors.
summary.pcanon Summarizes the anatomy of a design, being the
decomposition of the sample space based on its
canonical analysis
print.summary.pcanon Prints the values in an ’summary.pcanon’ object
efficiencies.pcanon Extracts the canonical efficiency factors from a
list of class ’pcanon’

Accepts exactly two formulae:

projs.2canon A canonical analysis of the relationships between


two sets of projectors
projs.combine.p2canon Extract, from a p2canon object, the projectors
summary.p2canon A summary of the results of an analysis of
the relationships between two sets of projectors
print.summary.p2canon Prints the values in an ’summary.p2canon’ object
that give the combined decomposition
efficiencies.p2canon Extracts the canonical efficiency factors from
a list of class ’p2canon’

Accepts a single formula:

as.data.frame.pstructure Coerces a pstructure.object to a data.frame


print.pstructure Prints a pstructure.object
pstructure.formula Takes a formula and constructs a pstructure.object
that includes the orthogonalized projectors for the
terms in a formula
Others:

decomp.relate Examines the relationship between the


eigenvectors for two decompositions
8 ABC.Interact.dat

efficiency.criteria Computes efficiency criteria from a set of


efficiency factors
fac.meanop Computes the projection matrix that produces means
proj2.eigen Canonical efficiency factors and eigenvectors
in joint decomposition of two projectors
proj2.efficiency Computes the canonical efficiency factors for
the joint decomposition of two projectors
proj2.combine Compute the projection and Residual operators
for two, possibly nonorthogonal, projectors
show-methods Methods for Function ’show’ in Package dae

(vii) Miscellaneous functions

extab Expands the values in table to a vector


get.daeTolerance Gets the value of daeTolerance for the package dae
harmonic.mean Calcuates the harmonic mean.
is.allzero Tests whether all elements are approximately zero
rmvnorm Generates a vector of random values from a
multivariate normal distribution
set.daeTolerance Sets the value of daeTolerance for the package dae

Author(s)
NA
Maintainer: NA

ABC.Interact.dat Randomly generated set of values indexed by three factors

Description
This data set has randomly generated values of the response variable MOE (Measure Of Effective-
ness) which is indexed by the two-level factors A, B and C.

Usage
data(ABC.Interact.dat)

Format
A data.frame containing 8 observations of 4 variables.

Source
Generated by Chris Brien
as.data.frame.pstructure 9

as.data.frame.pstructure
Coerces a pstructure.object to a data.frame.

Description
Coerces a pstructure.object, which is of class pstructure, to a data.frame. One can choose
whether or not to include the marginality matrix in the data.frame. The aliasing component is
excluded.

Usage
## S3 method for class 'pstructure'
as.data.frame(x, row.names = NULL, optional = FALSE, ...,
omit.marginality = FALSE)

Arguments
x The pstructure.object, which is of class pstructure and is to be coerced.
row.names NULL or a character vector giving the row names for the data frame. Missing
values are not allowed.
optional A logical passed to as.data.frame. If TRUE, setting row names and con-
verting column names (to syntactic names: see make.names) is optional. Note
that all of R’s base package as.data.frame() methods use optional only for
column names treatment, basically with the meaning of
data.frame(*, check.names = !optional).
... Further arguments passed to or from other methods.
omit.marginality
A logical, which, if TRUE, results in the marginality matrix being omitted
from the data.frame.

Value
A data.frame with as many rows as there are non-aliased terms in the pstructure.object. The
columns are df, terms, sources and, if omit.marginality is FALSE, the columns of the generated
levels with columns of the marginality matrix that is stored in the marginality component of
the object.

Author(s)
Chris Brien

See Also
as.data.frame.
10 as.numfac

Examples
## Generate a data.frame with 4 factors, each with three levels, in standard order
ABCD.lay <- fac.gen(list(A = 3, B = 3, C = 3, D = 3))

## create a pstructure object based on the formula ((A*B)/C)*D


ABCD.struct <- pstructure.formula(~ ((A*B)/C)*D, data =ABCD.lay)

## print the object either using the Method function or the generic function
ABCS.dat <- as.data.frame.pstructure(ABCD.struct)
as.data.frame(ABCD.struct)

as.numfac Convert a factor to a numeric vector

Description
Converts a factor to a numeric vector with approximately the numeric values of its levels.
Hence, the levels of the factor must be numeric values, stored as characters. It uses the method
described in factor. Use as.numeric to convert a factor to a numeric vector with integers 1, 2,
... corresponding to the positions in the list of levels. You can also use fac.recode to recode the
levels to numeric values. If a numeric is supplied, it is left unchanged.

Usage
as.numfac(factor)

Arguments
factor The factor to be converted.

Value
A numeric vector. An NA will be stored for any value of the factor whose level is not a number.

Author(s)
Chris Brien

See Also
as.numeric, fac.recode in package dae, factor.

Examples
## set up a factor and convert it to a numeric vector
a <- factor(rep(1:3, 4))
x <- as.numfac(a)
BIBDWheat.dat 11

BIBDWheat.dat Data for a balanced incomplete block experiment

Description
The data set comes from Joshi (1987) and is the data from an experiment to investigate six varieties
of wheat that employs a balanced incomplete block design (BIBD) with ten blocks, each consisting
of three plots. For more details see the vignette daeDesignNotes.pdf.

Usage
data(BIBDWheat.dat)

Format
A data.frame containing 30 observations of 4 variables.

Source
Joshi, D. D. (1987) Linear Estimation and Design of Experiments. Wiley Eastern, New Delhi.

blockboundaryPlot This function plots a block boundary on a plot produced by


designPlot.

Description
This function plots a block boundary on a plot produced by designPlot. It allows control of the
starting unit, through rstart and cstart, and the number of rows (nrows) and columns (ncolumns)
from the starting unit that the blocks to be plotted are to cover.

Usage
blockboundaryPlot(blockdefinition = NULL, blocksequence = FALSE,
rstart= 0, cstart = 0, nrows, ncolumns,
blocklinecolour = 1, blocklinewidth = 2)

Arguments
blockdefinition
A matrix of block sizes:
• if there is only one row, then the first element is interpreted as the no. rows
in each block and blocks with this number of rows are to be repeated across
the rows of the design.
12 blockboundaryPlot

• if there is more than one row, then each row of the matrix specifies a block,
with the sequence of rows in the matrix specifying a corresponding se-
quence of blocks down the rows of the design.
Similarly, a single value for a column specifies a repetition of blocks of that
size across the columns of the design, while several column values specifies a
sequence of blocks across the columns of the size specified.
blocksequence A logical that determines whether block numbers are repetitions or sequences
of block numbers.
rstart A numeric speccifying the row after which the plotting of block boundaries is
to start.
cstart A numeric speccifying the column after which the plotting of block boundaries
is to start.
nrows A numeric the number of rows (nrows), from the starting unit, that the blocks
to be plotted are to cover.
ncolumns A numeric the number of columns (ncolumns), from the starting unit, that the
blocks to be plotted are to cover.
blocklinecolour
A character string specifying the colour of the block boundary.
See Colour specification under the par function.
blocklinewidth A numeric giving the width of the block boundary to be plotted.

Value
no values are returned, but modifications are made to the currently active plot.

Author(s)
Chris Brien

See Also
designPlot, par, DiGGer

Examples
## Not run:
SPL.Lines.mat <- matrix(as.numfac(Lines), ncol=16, byrow=T)
colnames(SPL.Lines.mat) <- 1:16
rownames(SPL.Lines.mat) <- 1:10
SPL.Lines.mat <- SPL.Lines.mat[10:1, 1:16]
designPlot(SPL.Lines.mat, labels=1:10, new=TRUE,
rtitle="Rows",ctitle="Columns",
chardivisor=3, rcellpropn = 1, ccellpropn=1,
plotcellboundary = TRUE)
#Plot Mainplot boundaries
blockboundaryPlot(blockdefinition = cbind(4,16), rstart = 1,
blocklinewidth = 3, blockcolour = "green",
nrows = 9, ncolumns = 16)
Casuarina.dat 13

blockboundaryPlot(blockdefinition = cbind(1,4),
blocklinewidth = 3, blockcolour = "green",
nrows = 1, ncolumns = 16)
blockboundaryPlot(blockdefinition = cbind(1,4), rstart= 9, nrows = 10, ncolumns = 16,
blocklinewidth = 3, blockcolour = "green")
#Plot all 4 block boundaries
blockboundaryPlot(blockdefinition = cbind(8,5,5,4), blocksequence=T,
cstart = 1, rstart= 1, nrows = 9, ncolumns = 15,
blocklinewidth = 3,blockcolour = "blue")
blockboundaryPlot(blockdefinition = cbind(10,16), blocklinewidth=3, blockcolour="blue",
nrows=10, ncolumns=16)
#Plot border and internal block boundaries only
blockboundaryPlot(blockdefinition = cbind(8,14), cstart = 1, rstart= 1,
nrows = 9, ncolumns = 15,
blocklinewidth = 3, blockcolour = "blue")
blockboundaryPlot(blockdefinition = cbind(10,16),
blocklinewidth = 3, blockcolour = "blue",
nrows = 10, ncolumns = 16)
## End(Not run)

Casuarina.dat Data for an experiment with rows and columns from Williams (2002)

Description

Williams (2002, p.144) provides an example of a resolved, Latinized, row-column design with four
rectangles (blocks) each of six rows by ten columns. The experiment investigated differences be-
tween 60 provenances of a species of Casuarina tree, these provenances coming from 18 countries;
the trees were inoculated prior to planting at two different times, time of inoculation being assigned
to the four replicates so that each occurred in two replicates. At 30 months, diameter at breast height
(Dbh) was measured. For more details see the vignette daeDesignNotes.pdf.

Usage

data(Casuarina.dat)

Format

A data.frame containing 240 observations of 7 variables.

Source

Williams, E. R., Matheson, A. C. and Harwood, C. E. (2002) Experimental design and analysis for
tree improvement. 2nd edition. CSIRO, Melbourne, Australia.
14 correct.degfree

correct.degfree Check the degrees of freedom in an object of class projector

Description
Check the degrees of freedom in an object of class "projector".

Usage
correct.degfree(object)

Arguments
object An object of class "projector" whose degrees of freedom are to be checked.

Details
The degrees of freedom of the projector are obtained as its number of nonzero eigenvalues. An
eigenvalue is regarded as zero if it is less than daeTolerance, which is initially set to.Machine$double.eps
^ 0.5 (about 1.5E-08). The function set.daeTolerance can be used to change daeTolerance.

Value
TRUE or FALSE depending on whether the correct degrees of freedom have been stored in the
object of class "projector".

Author(s)
Chris Brien

See Also
degfree, projector in package dae.
projector for further information about this class.

Examples
## set up a 2 x 2 mean operator that takes the mean of a vector of 2 values
m <- matrix(rep(0.5,4), nrow=2)

## create a projector based on the matrix m


proj.m <- new("projector", data=m)

## add its degrees of freedom


degfree(proj.m) <- 1

## check degrees of freedom are correct


correct.degfree(proj.m)
dae-deprecated 15

dae-deprecated Deprecated Functions in Package dae

Description
These functions have been renamed and deprecated in dae.

Usage
Ameasures(...)
blockboundary.plot(...)
design.plot(...)
proj2.decomp(...)
proj2.ops(...)
projs.canon(...)
projs.structure(...)

Arguments
... absorbs arguments passed from the old functions of the style foo.bar().

Author(s)
Chris Brien

daeTips The intermittent, randomly-presented, startup tips.

Description
The intermittent, randomly-presented, startup tips.

Startup tips
Need help? Enter help(package = ’dae’) and click on ’User guides, package vignettes and other
docs’.
Need help? The manual is in the doc subdirectory of the package’s install directory.
Find out what has changed in dae: enter news(package = ’dae’).
Need help to produce randomized designs? Enter vignette(’DesignNotes’, package = ’dae’).
Need help to do the canonical analysis of a design? Enter vignette(’DesignNotes’, package = ’dae’).
Use suppressPackageStartupMessages() to eliminate all package startup messages.
To see all the intermittent, randomly-presented, startup tips enter ?daeTips.
For versions between CRAN releases (and more) go to http://chris.brien.name/rpackages.
16 decomp.relate

Author(s)
Chris Brien

decomp.relate Examines the relationship between the eigenvectors for two decompo-
sitions

Description
Two decompositions produced by proj2.eigen are compared by computing all pairs of crossprod-
uct sums of eigenvectors from the two decompositions. It is most useful when the calls to proj2.eigen
have the same Q1.

Usage
decomp.relate(decomp1, decomp2)

Arguments
decomp1 A list containing components efficiencies and eigenvectors such as is produced
by proj2.eigen.
decomp2 Another list containing components efficiencies and eigenvectors such as is
produced by proj2.eigen.

Details
Each element of the r1 x r2 matrix is the sum of crossproducts of a pair of eigenvectors, one from
each of the two decompositions. A sum is regarded as zero if it is less than daeTolerance, which
is initially set to .Machine$double.eps ^ 0.5 (about 1.5E-08). The function set.daeTolerance can
be used to change daeTolerance.

Value
A matrix that is r1 x r2 where r1 and r2 are the numbers of efficiencies of decomp1 and decomp2,
respectively. The rownames and columnnames of the matrix are the values of the efficiency factors
from decomp1 and decomp2, respectively.

Author(s)
Chris Brien

See Also
proj2.eigen, proj2.combine in package dae, eigen.
degfree 17

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)

##obtain sets of projectors


unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
trt.struct <- pstructure(~ trt, data = PBIBD2.lay)

## obtain intra- and inter-block decompositions


decomp.inter <- proj2.eigen(unit.struct$Q[["Block"]], trt.struct$Q[["trt"]])
decomp.intra <- proj2.eigen(unit.struct$Q[["Unit[Block]"]], trt.struct$Q[["trt"]])

## check that intra- and inter-block decompositions are orthogonal


decomp.relate(decomp.intra, decomp.inter)

degfree Degrees of freedom extraction and replacement

Description
Extracts the degrees of freedom from or replaces them in an object of class "projector".

Usage
degfree(object)

degfree(object) <- value

Arguments
object An object of class "projector" whose degrees of freedom are to be extracted
or replaced.
value An integer to which the degrees of freedom are to be set or an object of class
"projector" or "matrix" from which the degrees of freedom are to be calulated.

Details
There is no checking of the correctness of the degrees of freedom, either already stored or as a
supplied integer value. This can be done using correct.degfree.
When the degrees of freedom of the projector are to be calculated, they are obtained as the number
of nonzero eigenvalues. An eigenvalue is regarded as zero if it is less than daeTolerance, which is
initially set to .Machine$double.eps ^ 0.5 (about 1.5E-08). The function set.daeTolerance
can be used to change daeTolerance.
18 designAmeasures

Value
An object of class "projector" that consists of a square, summetric, idempotent matrix and degrees
of freedom (rank) of the matrix.

Author(s)
Chris Brien

See Also
correct.degfree, projector in package dae.
projector for further information about this class.

Examples
## set up a 2 x 2 mean operator that takes the mean of a vector of 2 values
m <- matrix(rep(0.5,4), nrow=2)

## coerce to a projector
proj.m <- projector(m)

## extract its degrees of freedom


degfree(proj.m)

## create a projector based on the matrix m


proj.m <- new("projector", data=m)

## add its degrees of freedom and print the projector


degfree(proj.m) <- proj.m
print(proj.m)

designAmeasures Calculates the average variance of pairwise differences from the vari-
ance matrix for predictions that can be obtained using mat.Vpredicts

Description
Calculates the average variance of pairwise differences between (of elementary contrasts of) pre-
ductions, possibly for different subgroups of the predictions, from the variance matrix for the pre-
dictions. If groups are specified then the A-optimality measures are calculated for the differences
between predictions within each group and for those between predictions from different groups. If
groupsizes are specified, but groups are not, the predictions will be sequentially broken into groups
of the size specified by the elements of groupsizes. The groups can be named.

Usage
designAmeasures(Vpred, groupsizes = NULL, groups = NULL)
designAmeasures 19

Arguments
Vpred The variance matrix of the predictions.
groupsizes A numeric containing group sizes. The sum of the elements of groupsizes
must be less than or equal to the order of Vpred. If groupsizes is a named
vector, the names are used to label the groups. If NULL, either groups is used
or the average for all pairwise differences is obtained.
groups A list, each element of which specifies a subroup of the predictions over whose
pairwise differences the variances are to be averaged. If there is more than one
group, the variances of all between and within group pairwise differences are
averaged. If the elements of groups are named , the names are used to label
the groups. If groups is NULL, either groupsizes is used or the average for all
pairwise differences is obtained.

Value
A matrix containing the within and between group A-optimality measures.

Author(s)
Chris Brien

References
Smith, A. B., D. G. Butler, C. R. Cavanagh and B. R. Cullis (2015). Multi-phase variety trials
using both composite and individual replicate samples: a model-based design approach. Journal of
Agricultural Science, 153, 1017-1029.

See Also
mat.Vpred, designAnatomy.

Examples
## Reduced example from Smith et al. (2015)
## Generate two-phase design
mill.fac <- fac.gen(list(Mrep = 2, Mday = 2, Mord = 3))
field.lay <- fac.gen(list(Frep = 2, Fplot = 4))
field.lay$Variety <- factor(c("D","E","Y","W","G","D","E","M"),
levels = c("Y","W","G","M","D","E"))
start.design <- cbind(mill.fac, field.lay[c(3,4,5,8,1,7,3,4,5,8,6,2),])
rownames(start.design) <- NULL

## Set up matrices
n <- nrow(start.design)
W <- model.matrix(~ -1+ Variety, start.design)
ng <- ncol(W)
Gg<- diag(1, ng)
Vu <- with(start.design, fac.vcmat(Mrep, 0.3) +
fac.vcmat(fac.combine(list(Mrep, Mday)), 0.2) +
fac.vcmat(Frep, 0.1) +
20 designAnatomy

fac.vcmat(fac.combine(list(Frep, Fplot)), 0.2))


R <- diag(1, n)

## Calculate the varaince matrix of the predicted random Variety effects


Vp <- mat.Vpred(W = W, Gg = Gg, Vu = Vu, R = R)

## Calculate A-optimality measure


designAmeasures(Vp)
designAmeasures(Vp, groups=list(fldUndup = c(1:4), fldDup = c(5,6)))
grpsizes <- c(4,2)
names(grpsizes) <- c("fldUndup", "fldDup")
designAmeasures(Vp, groupsizes = grpsizes)
designAmeasures(Vp, groupsizes = c(4))
designAmeasures(Vp, groups=list(c(1,4),c(5,6)))

## Calculate the variance matrix of the predicted fixed Variety effects, elminating the grand mean
Vp.reduc <- mat.Vpred(W = W, Gg = 0, Vu = Vu, R = R,
eliminate = projector(matrix(1, nrow = n, ncol = n)/n))
## Calculate A-optimality measure
designAmeasures(Vp.reduc)

designAnatomy Given the layout for a design, obtain its anatomy via the canonical
analysis of its projectors to show the confounding and aliasing inher-
ent in the design.

Description

Computes the canonical efficiency factors for the joint decomposition of two or more structures
or sets of mutually orthogonally projectors (Brien and Bailey, 2009; Brien, 2017; Brien, 2019),
orthogonalizing projectors in a set to those earlier in the set of projectors with which they are
partially aliased. The results can be summarized in the form of a decomposition table that shows
the confounding between sources from different sets. For examples of its use also see the vignette
daeDesignNotes.pdf.

Usage

designAnatomy(formulae, data, keep.order = TRUE, grandMean = FALSE,


orthogonalize = "hybrid", labels = "sources",
marginality = NULL, check.marginality = TRUE,
which.criteria = c("aefficiency","eefficiency","order"),
aliasing.print = FALSE,
omit.projectors = c("pcanon", "combined"), ...)
designAnatomy 21

Arguments
formulae An object of class list whose components are of class formula. Usually, the
terms in a single formula have the same status in the allocation of factors in the
design. For example, all involve only factors that were allocated, or all involve
factors that were recipients of allocated factors. The names of the components
are used to identify the sources in the summary.pcanon object. They will also be
used to name the terms, sources and marginality lists in the pcanon.object.
data A data.frame contains the values of the factors and variables that occur in
formulae.
keep.order A logical indicating whether the terms should keep their position in the ex-
panded formula projector, or reordered so that main effects precede two-factor
interactions, which precede three-factor interactions and so on.
grandMean A logical indicating whether the projector for the grand mean is to be included
for each structure.
orthogonalize A character vector indicating the method for orthogonalizing a projector to
those for terms that occurred previously in a single formula. Three options are
available: hybrid; differencing; eigenmethods. The hybrid option is the
most general and uses the relationships between the projection operators for the
terms in the formula to decide which projectors to substract and which to or-
thogonalize using eigenmethods. The differencing option subtracts, from the
current projector, those previously orthogonalized projectors for terms whose
factors are a subset of the current projector’s factors. The eigemethods option
recursively orthogonalizes the projects using an eigenanalysis of each projector
with previously orthogonalized projectors. If a single value is given, it is used
for all formulae.
labels A character nominating the type of labels to be used in labelling the projectors,
and which will be used also in the output tables, such the tables of the aliasing
in the structure. The two alternatives are terms and sources. Terms have all
factors/variables in it separated by colons (:). Sources have factors/variables
in them that represent interactions separated by hashes (#); if some factors are
nested within others, the nesting factors are surrounded by square brackets ([
and ]) and separated by colons (:). If some generalized, or combined, factors
have no marginal terms, the constituent factors are separated by colons (:) and
if they interact with other factors in the source they will be parenthesized.
marginality A list that can be used to supply some or all of the marginality matrices when
it is desired to overwrite calculated marginality matrices or when they are not
calculated. If the list is the same length as the formulae list, they will
be associated in parallel with the components of formulae, irespective of the
naming of the two lists. If the number of components in marginlaity is less
than the number of components in formulae then both lists must be named so
that those in the marginality list can be matched with those in the formulae
list.
Each component of the marginality list must be either NULL or a square
matrix consisting of zeroes and ones that gives the marginalites of the terms in
the formula. It must have the row and column names set to the terms from the
expanded formula, including being in the same order as these terms. The entry
22 designAnatomy

in the ith row and jth column will be one if the ith term is marginal to the jth
term i.e. the column space of the ith term is a subspace of that for the jth term
and so the source for the jth term is to be made orthogonal to that for the ith
term. Otherwise, the entries are zero. A row and column should not be included
for the grand mean even if grandMean is TRUE.
check.marginality
A logical indicating whether the marginality matrix, when it is supplied, is to
be checked against that computed by pstructure.formula. It is ignored when
orthogonalize is set to eigenmethods.
which.criteria A character vector nominating the efficiency criteria to be included in the sum-
mary of aliasing between terms within a structure. It can be none, all or some
combination of aefficiency, mefficiency, sefficiency, eefficiency, xefficiency,
order and dforthog – for details see efficiency.criteria. If none, no sum-
mary is printed.
aliasing.print A logical indicating whether the aliasing between sources is to be printed.
omit.projectors
A character vector of the types of projectors to omit from the returned pcanon
object. If pcanon is included in the vector then the projectors in these ob-
jects will be replaced with a numeric containing their degrees of freedom. If
combined is included in the vector then the projectors for the combined decom-
position will be replaced with a numeric containing their degrees of freedom. If
none is included in the vector then no projectors will be omitted.
... further arguments passed to terms.

Details
For each formula supplied in formulae, the set of projectors is obtained using pstructure; there
is one projector for each term in a formula. Then projs.2canon is used to perform an analysis of
the canonical relationships between two sets of projectors for the first two formulae. If there are
further formulae, the relationships between its projectors and the already established decomposition
is obtained using projs.2canon. The core of the analysis is the determination of eigenvalues of
the product of pairs of projectors using the results of James and Wilkinson (1971). However, if the
order of balance between two projection matrices is 10 or more or the James and Wilkinson (1971)
methods fails to produce an idempotent matrix, equation 5.3 of Payne and Tobias (1992) is used to
obtain the projection matrices for their joint decompostion.

Value
A pcanon.object.

Author(s)
Chris Brien

References
Brien, C. J. (2017) Multiphase experiments in practice: A look back. Australian & New Zealand
Journal of Statistics, 59, 327-352.
designAnatomy 23

Brien, C. J. (2019) Multiphase experiments with at least one later laboratory phase . II. Northogonal
designs. Australian & New Zealand Journal of Statistics, accepted for publication.
Brien, C. J. and R. A. Bailey (2009). Decomposition tables for multitiered experiments. I. A chain
of randomizations. The Annals of Statistics, 36, 4184 - 4213.
James, A. T. and Wilkinson, G. N. (1971) Factorization of the residual operator and canonical
decomposition of nonorthogonal factors in the analysis of variance. Biometrika, 58, 279-294.
Payne, R. W. and R. D. Tobias (1992). General balance, combination of information and the analysis
of covariance. Scandinavian Journal of Statistics, 19, 3-23.

See Also

designRandomize, designLatinSqrSys, designPlot,


pcanon.object, p2canon.object, summary.pcanon, efficiencies.pcanon, pstructure ,
projs.2canon, proj2.efficiency, proj2.combine, proj2.eigen, efficiency.criteria, in
package dae,
eigen.
projector for further information about this class.

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)

##obtain combined decomposition and summarize


unit.trt.canon <- designAnatomy(formulae = list(unit=~ Block/Unit, trt=~ trt),
data = PBIBD2.lay)
summary(unit.trt.canon, which.criteria = c("aeff","eeff","order"))
summary(unit.trt.canon, which.criteria = c("aeff","eeff","order"), labels.swap = TRUE)

## Three-phase sensory example from Brien and Payne (1999)


## Not run:
data(Sensory3Phase.dat)
Eval.Field.Treat.canon <- designAnatomy(formulae = list(
eval= ~ ((Occasions/Intervals/Sittings)*Judges)/Positions,
field= ~ (Rows*(Squares/Columns))/Halfplots,
treats= ~ Trellis*Method),
data = Sensory3Phase.dat)
summary(Eval.Field.Treat.canon, which.criteria =c("aefficiency", "order"))

## End(Not run)
24 designPlot

designLatinSqrSys Generate a systematic plan for a Latin Square design

Description
Generates a systematic plan for a Latin Square design using the method of cycling the integers 1 to
the number of treatments. The start of the cycle for each row, or the first column, can be specified
as a vector of integers.

Usage
designLatinSqrSys(order, start = NULL)

Arguments
order The number of treatments.
start A numeric containing order unique values between one and order. These are
interpreted as the value for the fist column for each row. If NULL, 1:order is
used.

Value
A numeric containing order x order integers between 1 and order such that, when the numeric
is considered as a square matrix of size order, each integer occurs once and only once in each row
and column of the matrix.

See Also
designRandomize, designPlot, designAnatomy in package dae.

Examples
matrix(designLatinSqrSys(5, start = c(seq(1, 5, 2), seq(2, 5, 2))), nrow=5)
designLatinSqrSys(3)

designPlot A graphical representation of an experimental design using labels


stored in a matrix.

Description
This function uses labels, usually derived from treatment and blocking factors from an experimental
design and stored in a matrix, to build a graphical representation of the matrix, highlighting the
position of certain labels . It is a modified version of the function supplied with DiGGer. It includes
more control over the labelling of the rows and columns of the design and allows for more flexible
plotting of designs with unequal block size.
designPlot 25

Usage
designPlot(designMatrix, labels = NULL, altlabels = NULL, plotlabels = TRUE,
rtitle = NULL, ctitle = NULL,
rlabelsreverse = FALSE, clabelsreverse = FALSE,
font = 1, chardivisor = 2, rchardivisor = 1, cchardivisor = 1,
cellfillcolour = NA, plotcellboundary = TRUE,
rcellpropn = 1, ccellpropn = 1,
blocksequence = FALSE, blockdefinition = NULL,
blocklinecolour = 1, blocklinewidth = 2,
rotate = FALSE, new = TRUE, ...)

Arguments
designMatrix A matrix containing a set of numerics or characters being the labels as they
have been assigned to the cells of the grid represented by the matrix.
labels A numeric or character vector giving the cells in designMatrix that are to be
plotted in this call to designPlot. If NULL then all the cells are plotted.
What is actually plotted for a cell is controlled jointly by labels, plotlabels,
altlabels, plotcellboundary and cellfillcolour. If plotlabels is TRUE
and altlabels is NULL then labels are plotted in the cells, unless labels is
NULL when the labels in designMatrix are plotted.
Whatever is being plotted, altlabels and cellfillcolour must have an ap-
propriate number of values. See text for more information on specifying the
labels.
altlabels Either a character vector containing an alternative set of labels for the labels
currently being plotted or a single integer specifying an alternative symbol to
be used in plotting cells when plotlabels is TRUE. The length of altlabels
must be one or the same length as labels, unless labels is NULL in which case
it must equal the number of unique labels in designMatrix.
If altlabels is NULL, the labels specified in labels are plotted when plotlabels
is TRUE. If labels is also NULL, the labels in designMatrix are plotted. See
text for more information on specifying the labels.
plotlabels A logical to indicate whether labels are to be plotted in the cells. If TRUE,
print all labels or the specific labels listed in labels. If FALSE, no labels are
printed in the cells.
rtitle A character string to use as a title for rows of the plot. If rtitle is NULL then
no title is plotted.
ctitle A character string to use as a title for columns of the plot. If ctitle is NULL
then no title is plotted.
rlabelsreverse A logical indicating whether to reverse the row labels.
clabelsreverse A logical indicating whether to reverse the column labels.
font An integer specifying the font to be used for row and column labelling. See
par for further details.
chardivisor A numeric that changes the size of text and symbols in the cells by dividing the
default size by it.
26 designPlot

rchardivisor A numeric that changes the size of the labels of the rows of the design by divid-
ing the default size by it.
cchardivisor A numeric that changes the size of the labels of the columns of the design by
dividing the default size by it.
cellfillcolour A character string specifying the colour of the fill for the cells to be plotted in
this call. If there is only one colour then all cells being plotted with that colour.
If there is more than one colour then, unless labels is NULL, the number of
colours must at least equal the number of labels and then the fill colours will be
matched, one for one from the first colour, with the labels. If labels is NULL
then the number of colours must at least equal the number of unique labels in
designMatrix. The default, NA, is to leave ther cells unfilled.
See also Colour specification under the par function.
plotcellboundary
A logical indicting whether a boundary is to plotted around a cell.
rcellpropn a value between 0 and 1 giving the proportion of the standard row size of a cell
size to be plotted as a cell.
ccellpropn a value between 0 and 1 giving the proportion of the standard column size of a
cell size to be plotted as a cell.
blocksequence A logical that determines whether block numbers are repetitions or sequences
of block numbers.
blockdefinition
A matrix of block sizes:
• if there is only one row, then the first element is interpreted as the no. rows
in each block and blocks with this number of rows are to be repeated across
the rows of the design.
• if there is more than one row, then each row of the matrix specifies a block,
with the sequence of rows in the matrix specifying a corresponding se-
quence of blocks down the rows of the design.
Similarly, a single value for a column specifies a repetition of blocks of that
size across the columns of the design, while several column values specifies a
sequence of blocks across the columns of the size specified.
blocklinecolour
A character string specifying the colour of the block boundary.
See also Colour specification under the par function.
blocklinewidth A numeric giving the width of the block boundary to be plotted.
rotate A logical which, if TRUE, results in the matrix being rotated 90 degrees for
plotting.
new A logical indicating if a new plot is to be produced or the current plot is added
to.
... further arguments passed to polygon in plotting the cell.

Value
no values are returned, but a plot is produced.
designPlotlabels 27

Author(s)

Chris Brien

References

Coombes, N. E. (2009). DiGGer design search tool in R. http://nswdpibiom.org/austatgen/


software/

See Also

blockboundaryPlot, designPlotlabels, designLatinSqrSys, designRandomize, designAnatomy


in package dae.
Also, par, polygon, DiGGer

Examples
## Not run:
designPlot(des.mat, labels=1:4, cellfillcolour="lightblue", new=TRUE,
plotcellboundary = TRUE, chardivisor=3,
rtitle="Lanes", ctitle="Positions",
rcellpropn = 1, ccellpropn=1)
designPlot(des.mat, labels=5:87, plotlabels=TRUE, cellfillcolour="grey", new=FALSE,
plotcellboundary = TRUE, chardivisor=3)
designPlot(des.mat, labels=88:434, plotlabels=TRUE, cellfillcolour="lightgreen",
new=FALSE, plotcellboundary = TRUE, chardivisor=3,
blocksequence=TRUE, blockdefinition=cbind(4,10,12),
blocklinewidth=3, blockcolour="blue")
## End(Not run)

designPlotlabels Plots labels on a two-way grid using ggplot2

Description

Plots the labels in a grid specified by grid.xand grid.y. The labels can be coloured by the values
of the column specified by column.name.

Usage

designPlotlabels(data, labels, grid.x = "Columns", grid.y = "Rows",


colour.column=NULL, colour.values=NULL,
reverse.x = FALSE, reverse.y = TRUE,
xlab, ylab, title, printPlot = TRUE, ggplotFuncs = NULL, ...)
28 designPlotlabels

Arguments
data A data.frame containing labels, grid.x, grid.y and, if specified, colour.column.
labels A character giving the name of the column in data containing the labels to be
plotted on the grid.
grid.x A character giving the name of the column in data that specifies the x-coordinates
of the plot grid.
grid.y A character giving the name of the column in data that specifies the y-coordinates
of the plot grid.
reverse.x A logical which, if true, causes the order of values on the x-axis to be reversed.
reverse.y A logical which, if true, causes the order of values on the y-axis to be reversed.
colour.column A character giving the name of the column in data that is to be used to colour
the values plotted on the grid.
colour.values A character giving the name of the column in data that is to be used to colour
the values plotted on the grid.
xlab Label for the x-axis. By default it is the name of the grid.x.
ylab Label for the y-axis. By default it is the name of the grid.y.
title Title for plot window. By default it is "Plot of labels".
printPlot A logical indicating whether to print the plot.
ggplotFuncs A list, each element of which contains the results of evaluating a ggplot func-
tion. It is created by calling the list function with a ggplot function call for
each element.
... Other arguments that are passed down to geom_text.

Value
An object of class "ggplot", which can be plotted using print.

Author(s)
Chris Brien

See Also
fac.combine in package dae, designPlot.

Examples
Treatments <- factor(rep(1:6, times = 5))
RCBD.lay <- designRandomize(allocated = Treatments,
recipient = list(Blocks = 5, Units = 6),
nested.recipients = list(Units = "Blocks"),
seed = 74111)
designPlotlabels(RCBD.lay, labels = "Treatments",
grid.x = "Units", grid.y = "Blocks",
colour.column = "Treatments", size = 5)
designRandomize 29

designRandomize Randomize allocated to recipient factors to produce a layout for an


experiment

Description
A systematic design is specified by a set of allocated factors that have been assigned to a set of
recipient factors. In textbook designs the allocated factors are the treatment factors and the
recipient factors are the factors indexing the units. To obtain a randomized layout for a sys-
tematic design it is necessary to provide (i) the systematic arrangement of the allocated factors,
(ii) a list of the recipient factors or a data.frame with their values, and (iii) the nesting of
the recipient factors for the design being randomized. Given this information, the allocated
factors will be randomized to the recipient factors, taking into account the nesting between
the recipient factors for the design. However, allocated factors that have different values as-
sociated with those recipient factors that are in the except vector will remain unchanged from
the systematic design.
Also, if allocated is NULL then a random permutation of the recipient factors is produced that
is consistent with their nesting as specified by nested.recipients.
For examples of its use also see the vignette daeDesignNotes.pdf.

Usage
designRandomize(allocated = NULL, recipient, nested.recipients = NULL,
except = NULL, seed = NULL, unit.permutation = FALSE, ...)

Arguments
allocated A factor or a data.frame containing the systematically allocated values of the
factor(s). If NULL, a random permutation of the recipient factors is pro-
duced that is consistent with their nesting as specified by nested.recipients.
recipient A data.frame or a list of factors, along with their levels that specify the
set of recipient factors that are allocated levels of the allocated factors.
If a list, the name of each component of the list is a factor name and the
component is either (i) a single numeric value that is the number of levels, (ii)
a numeric vector that contains the levels of the factor, (iii) or a character
vector that contains the labels of the levels of the factor. The values of
factors will be generated in standard order using fac.gen and so the values in
allocated must match this.
nested.recipients
A list of the recipient factors that are nested in other factors in recipient.
The name of each component is the name of a factor that is nested and the com-
ponent is a character vector containing the factors within which it is nested. It
is emphasized that the nesting is a property of the design that is being employed
(it is only partly based on the intrinsic nesting).
30 designRandomize

except A character vector containing the names recipient factors that are to
be excepted from the permutation; any allocated factors whose values dif-
fer between the levels of the factors in this vector will not have those values
randomized.
seed A single numeric value, interpreted as an integer, that specifies the starting value
of the random number generator.
unit.permutation
A logical indicating whether to include the .Unit and .Permutation columns
in the data.frame.
... Further arguments passed to or from other methods. Unused at present.

Details
A systematic design is specified by the matching of the supplied allocated and recipient factors.
If recipient is a list then fac.gen is used to generate a data.frame with the combinations of the
levels of the recipient factors in standard order. Although, the data.frames are not combined
at this stage, the systematic design is the combination, by columns, of the values of the allocated
factors with the values of recipient factors in the recipient data.frame.
The method of randomization described by Bailey (1981) is used to randomize the allocated
factors to the recipient factors. That is, a permutation of the recipient factors is obtained
that respects the nesting for the design, but does not permute any of the factors in the except vector.
This permutation is applied to the recipient factors. Then the data.frame containing the per-
muted recipient factors and that containng the unpermuted allocated factors are combined
columnwise, as in cbind. To produce the randomized layout, the rows of the combined data.frame
are reordered so that its recipient factors are in either standard order or, if a data.frame was
suppled to recipient, the same order as for the supplied data.frame.
The .Units and .Permutation vectors enable one to swap between this permutation and the
randomized layout. The ith value in .Permutation gives the unit to which unit i was assigned in
the randomization.

Value
A data.frame with the values for the recipient and allocated factors that specify the layout
for the experiment and, if unit.permutation is TRUE, the values for .Units and .Permutation
vectors.

Author(s)
Chris Brien

References
Bailey, R.A. (1981) A unified approach to design of experiments. Journal of the Royal Statistical
Society, Series A, 144, 214–223.

See Also
fac.gen, designLatinSqrSys, designPlot, designAnatomy in package dae.
designTwophaseAnatomies 31

Examples
## generate a randomized layout for a 4 x 4 Latin square
## (the nested.recipients agument is not needed here as none of the
## factors are nested)
LS.unit <- data.frame(row = ordered(rep(c("I","II","III","IV"), times=4)),
col = factor(rep(c(0,2,4,6), each=4)))
LS.trt <- data.frame(treat = factor(designLatinSqrSys(4), label = LETTERS[1:4]))
data.frame(LS.unit, LS.trt)
LS.lay <- designRandomize(allocated = LS.trt, recipient = LS.unit,
seed = 7197132, unit.permutation = TRUE)
LS.lay[LS.lay$.Permutation,]

## generate a randomized layout for a replicated randomized complete


## block design, with the block factors arranged in standard order for
## rep then plot and then block
RCBD.unit <- list(rep = 2, plot=1:3, block = c("I","II"))
## specify that plot is nested in block and rep and that block is nested
## in rep
RCBD.nest <- list(plot = c("block","rep"), block="rep")
## generate treatment factor in systematic order so that its values correspond
## to plot
tr <- factor(rep(1:3, each=2, times=2))
## obtain randomized layout
RCBD.lay <- designRandomize(allocated = tr,
recipient = RCBD.unit,
nested.recipients = RCBD.nest,
seed = 9719532,
unit.permutation = TRUE)
#sort into the original standard order
RCBD.perm <- RCBD.lay[RCBD.lay$.Permutation,]
#resort into randomized order
RCBD.lay <- RCBD.perm[order(RCBD.perm$.Units),]

## generate a layout for a split-unit experiment in which:


## - the main-unit factor is A with 4 levels arranged in
## a randomized complete block design with 2 blocks;
## - the split-unit factor is B with 3 levels.
SPL.lay <- designRandomize(allocated = fac.gen(list(A = 4, B = 3), times = 2),
recipient = list(block = 2, main.unit = 4, split.unit = 3),
nested.recipients = list(main.unit = "block",
split.unit = c("block", "main.unit")),
seed=155251978)

## Generate a permutation of Seedlings within Species


seed.permute <- designRandomize(recipient = list(Species = 3, Seedlings = 4),
nested.recipients = list(Seedlings = "Species"),
seed = 75724, except = "Species",
unit.permutation = TRUE)
32 designTwophaseAnatomies

designTwophaseAnatomies
Given the layout for a design and three structure formulae, obtain
the anatomies for the two-phase, first-phase, cross-phase and second-
phase designs.

Description
Uses designAnatomy to obtain the four species of designs associated with a two-phase design
that are described by Brien (2019): the anatomies for the two-phase, first-phase, cross-phase and
second-phase designs.

Usage
designTwophaseAnatomies(formulae, data,
which.designs = "all", printAnatomies = TRUE,
orthogonalize = "hybrid",
marginality = NULL,
which.criteria = c("aefficiency", "eefficiency",
"order"), ...)

Arguments
formulae An object of class list with three components of class formula. Usually, the
terms in a single formula have the same status in the allocation of factors in the
design. For example, all involve only factors that were allocated, or all involve
factors that were recipients of allocated factors. The names of the components
are used to identify the sources in the summary.pcanon object. They will also be
used to name the terms, sources and marginality lists in the pcanon.object.
data A data.frame contains the values of the factors and variables that occur in
formulae.
which.designs A character vector indicating the species of designs that are to be obtained.
It should include one or more of two-phase, first-phase, cross-phase and
second-phase; all, the default, results in all four being obtained.
printAnatomies A logical indicating whether or not the anatomies are to be printed.
orthogonalize A character vector indicating the method for orthogonalizing a projector to
those for terms that occurred previously in a single formula. Three options are
available: hybrid; differencing; eigenmethods. The hybrid option is the
most general and uses the relationships between the projection operators for the
terms in the formula to decide which projectors to substract and which to or-
thogonalize using eigenmethods. The differencing option subtracts, from the
current projector, those previously orthogonalized projectors for terms whose
factors are a subset of the current projector’s factors. The eigemethods option
recursively orthogonalizes the projects using an eigenanalysis of each projector
with previously orthogonalized projectors. If a single value is given, it is used
for all formulae.
designTwophaseAnatomies 33

marginality A list that can be used to supply some or all of the marginality matrices when
it is desired to overwrite calculated marginality matrices or when they are not
calculated. If the list is the same length as the formulae list, they will
be associated in parallel with the components of formulae, irespective of the
naming of the two lists. If the number of components in marginlaity is less
than the number of components in formulae then both lists must be named so
that those in the marginality list can be matched with those in the formulae
list.
Each component of the marginality list must be either NULL or a square
matrix consisting of zeroes and ones that gives the marginalites of the terms in
the formula. It must have the row and column names set to the terms from the
expanded formula, including being in the same order as these terms. The entry
in the ith row and jth column will be one if the ith term is marginal to the jth
term i.e. the column space of the ith term is a subspace of that for the jth term
and so the source for the jth term is to be made orthogonal to that for the ith
term. Otherwise, the entries are zero. A row and column should not be included
for the grand mean even if grandMean is TRUE.
which.criteria A character vector nominating the efficiency criteria to be included in the sum-
mary of aliasing between terms within a structure. It can be none, all or some
combination of aefficiency, mefficiency, sefficiency, eefficiency, xefficiency,
order and dforthog – for details see efficiency.criteria. If none, no sum-
mary is printed.
... further arguments passed to designAnatomy.

Details
To produce the anatomies, designAnatomy is called. The two-phase anatomy is based on the three
formulae supplied in formulae, the first-phase anatomy uses the second and third formulae, the
cross-phase anatomy derives from the first and third formulae and the second-phase anatomy is
obtained with the first and second formulae.

Value
A list containing the components twophase, first, cross and second.Each contains the pcanon.object
for one of the four designs produced by designTwophaseAnatomies, unless it is NULL because the
design was omitted from the which.designs argument.

Author(s)
Chris Brien

References
Brien, C. J. (2017) Multiphase experiments in practice: A look back. Australian & New Zealand
Journal of Statistics, 59, 327-352.
Brien, C. J. (2019) Multiphase experiments with at least one later laboratory phase . II. Northogonal
designs. Australian & New Zealand Journal of Statistics, accepted for publication.
34 detect.diff

See Also
designAnatomy, pcanon.object, p2canon.object, summary.pcanon, efficiencies.pcanon,
pstructure , projs.2canon, proj2.efficiency, proj2.combine, proj2.eigen,
efficiency.criteria, in package dae, eigen.
projector for further information about this class.

Examples
#'## Microarray example from Jarrett & Ruggiero (2008) - see Brien (2019)
jr.lay <- fac.gen(list(Set = 7, Dye = 2, Array = 3))
jr.lay <- within(jr.lay,
{
Block <- factor(rep(1:7, each=6))
Plant <- factor(rep(c(1,2,3,2,3,1), times=7))
Sample <- factor(c(rep(c(2,1,2,2,1,1, 1,2,1,1,2,2), times=3),
2,1,2,2,1,1))
Treat <- factor(c(1,2,4,2,4,1, 2,3,5,3,5,2, 3,4,6,4,6,3,
4,5,7,5,7,4, 5,6,1,6,1,5, 6,7,2,7,2,6,
7,1,3,1,3,7),
labels=c("A","B","C","D","E","F","G"))
})

jr.anat <- designTwophaseAnatomies(formulae = list(array = ~ (Set:Array)*Dye,


plot = ~ Block/Plant/Sample,
trt = ~ Treat),
which.designs = c("first","cross"),
data = jr.lay)

## Three-phase sensory example from Brien and Payne (1999)


## Not run:
data(Sensory3Phase.dat)
Sensory.canon <- designTwophaseAnatomies(formulae = list(
eval= ~ ((Occasions/Intervals/Sittings)*Judges)/Positions,
field= ~ (Rows*(Squares/Columns))/Halfplots,
treats= ~ Trellis*Method),
data = Sensory3Phase.dat)

## End(Not run)

detect.diff Computes the detectable difference for an experiment

Description
Computes the delta that is detectable for specified replication, power, alpha.

Usage
detect.diff(rm=5, df.num=1, df.denom=10, sigma=1, alpha=0.05, power=0.8,
tol = 0.001, print=FALSE)
efficiencies 35

Arguments

rm The number of observations used in computing a mean.


df.num The degrees of freedom of the numerator of the F for testing the term involving
the means.
df.denom The degrees of freedom of the denominator of the F for testing the term involv-
ing the means.
sigma The population standard deviation.
alpha The significance level to be used.
power The minimum power to be achieved.
tol The maximum difference tolerated between the power required and the power
computed in determining the detectable difference.
print TRUE or FALSE to have or not have a table of power calculation details printed
out.

Value

A single numeric value containing the computed detectable difference.

Author(s)

Chris Brien

See Also

power.exp, no.reps in package dae.

Examples
## Compute the detectable difference for a randomized complete block design
## with four treatments given power is 0.8 and alpha is 0.05.
rm <- 5
detect.diff(rm = rm, df.num = 3, df.denom = 3 * (rm - 1),sigma = sqrt(20))

efficiencies Extracts the canonical efficiency factors from a pcanon.object or a


p2canon.object.

Description

Produces a list containing the canonical efficiency factors for the joint decomposition of two or
more sets of projectors (Brien and Bailey, 2009) obtained using designAnatomy or projs.2canon.
36 efficiencies

Usage
## S3 method for class 'pcanon'
efficiencies(object, which = "adjusted", ...)
## S3 method for class 'p2canon'
efficiencies(object, which = "adjusted", ...)

Arguments
object A pcanon.object or an object of class p2canon produced by projs.2canon.
which A character string, either adjusted or pairwise. For adjusted, the canonical
efficiency factor are adjusted for other projectors from from the same set. For
pairwise, they are the unadjusted canonical efficiency factors between pairs of
projectors consisting of one projector from each of two sets.
... Further arguments passed to or from other methods. Unused at present.

Value
For a pcanon.object, a list with a component for each component of object, except for the last
component – for more information about the components see pcanon.object .
For a p2canon object, a list with a component for each element of the Q1 argument from projs.2canon.
Each component is list, each its components corresponding to an element of the Q2 argument from
projs.2canon

Author(s)
Chris Brien

References
Brien, C. J. and R. A. Bailey (2009). Decomposition tables for multitiered experiments. I. A chain
of randomizations. The Annals of Statistics, 36, 4184 - 4213.

See Also
designAnatomy, summary.pcanon, proj2.efficiency, proj2.combine, proj2.eigen,
pstructure in package dae, eigen.
projector for further information about this class.

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)
efficiency.criteria 37

##obtain combined decomposition using designAnatomy and get the efficiencies


unit.trt.canon <- designAnatomy(list(unit=~ Block/Unit, trt=~ trt), data = PBIBD2.lay)
efficiencies.pcanon(unit.trt.canon)

##obtain the projectors for each formula using pstructure


unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
trt.struct <- pstructure(~ trt, data = PBIBD2.lay)

##obtain combined decomposition projs.2canon and get the efficiencies


unit.trt.p2canon <- projs.2canon(unit.struct$Q, trt.struct$Q)
efficiencies.p2canon(unit.trt.p2canon)

efficiency.criteria Computes efficiency criteria from a set of efficiency factors

Description
Computes efficiency criteria from a set of efficiency factors.

Usage
efficiency.criteria(efficiencies)

Arguments
efficiencies A numeric containing a set of efficiency factors.

Details
The aefficiency criterion is the harmonic mean of the nonzero efficiency factors. The mefficiency
criterion is the mean of the nonzero efficiency factors. The eefficiency criterion is the minimum
of the nonzero efficiency factors. The sefficiency criterion is the variance of the nonzero effi-
ciency factors. The xefficiency is the maximum of the efficiency factors. The order is the order
of balance and is the number of unique nonzero efficiency factors. The dforthog is the number of
efficiency factors that are equal to one.

Value
A list whose components are aefficiency, mefficiency, sefficiency, eefficiency, xefficiency,
order and dforthog.

Author(s)
Chris Brien

See Also
proj2.efficiency, proj2.eigen, proj2.combine in package dae, eigen.
projector for further information about this class.
38 elements

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)

## obtain sets of projectors


unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
trt.struct <- pstructure(~ trt, data = PBIBD2.lay)

## save intrablock efficiencies


eff.inter <- proj2.efficiency(unit.struct$Q[["Unit[Block]"]], trt.struct$Q[["trt"]])

## calculate efficiency criteria


efficiency.criteria(eff.inter)

elements Extract the elements of an array specified by the subscripts

Description
Elements of the array x corresponding to the rows of the two dimensional object subscripts are
extracted. The number of columns of subscripts corresponds to the number of dimensions of x.
The effect of supplying less columns in subscripts than the number of dimensions in x is the same
as for "[".

Usage
elements(x, subscripts)

Arguments
x An array with at least two dimensions whose elements are to be extracted.
subscripts A two dimensional object interpreted as elements by dimensions.

Value
A vector containing the extracted elements and whose length equals the number of rows in the
subscripts object.

Author(s)
Chris Brien
Exp249.mplot.des 39

See Also

Extract

Examples

## Form a table of the means for all combinations of Row and Line.
## Then obtain the values corresponding to the combinations in the data frame x,
## excluding Row 3.
x <- fac.gen(list(Row = 2, Line = 4), each =2)
x$y <- rnorm(16)
RowLine.tab <- tapply(x$y, list(x$Row, x$Line), mean)
xs <- elements(RowLine.tab, subscripts=x[x$"Line" != 3, c("Row", "Line")])

Exp249.mplot.des Systematic, main-plot design for an experiment to be run in a green-


house

Description

In this main-plot design, there are 24 lanes by 11 Positions, the lanes being blocked into 6 Zones
of 4 lanes. The design for the main plots is for assigning 75 wheat lines, of which 73 are Nested
Association Mapping (NAM) wheat lines and the other two are two check lines, Scout and Gladius.
A row and column design was generated with DiGGer (Coombes, 2009). For more details see the
vignette daeDesignNotes.pdf.

Usage

data(Exp249.mplot.des)

Format

A data.frame containing 264 observations of 3 variables.

Source

Coombes, N. E. (2009) codeDigger: design search tool in R. URL: http://nswdpibiom.org/


austatgen/software/, (accessed June 3, 2015).
40 extab

extab Expands the values in table to a vector

Description
Expands the values in table to a vector according to the index.factors that are considered
to index the table, either in standard or Yates order. The order of the values in the vector is
determined by the order of the values of the index.factors.

Usage
extab(table, index.factors, order="standard")

Arguments
table A numeric vector containing the values to be expanded. Its length must equal
the product of the number of used levels for the factors in index.factors and
the values in it correspond to all levels combinations of these factors. That is,
the values of the index.factors are irrelevant to table.
index.factors A list of factors that index the table. All the factors must be the same
length.
order The order in which the levels combinations of the index.factors are to be
considered as numbered in indexing table; standard numbers them as if they
are arranged in standard order, that is with the first factor moving slowest and
the last factor moving fastest; yates numbers them as if they are arranged in
Yates order, that is with the first factor moving fastest and last factor moving
slowest.

Value
A vector of length equal to the factors in index.factor whose values are taken from table.

Author(s)
Chris Brien

Examples
## generate a small completely randomized design with the two-level
## factors A and B
n <- 12
CRD.unit <- list(Unit = n)
CRD.treat <- fac.gen(list(A = 2, B = 2), each = 3)
CRD.lay <- designRandomize(allocated = CRD.treat, recipient = CRD.unit,
seed = 956)

## set up a 2 x 2 table of A x B effects


AB.tab <- c(12, -12, -12, 12)
fac.ar1mat 41

## add a unit-length vector of expanded effects to CRD.lay


attach(CRD.lay)
CRD.lay$AB.effects <- extab(table=AB.tab, index.factors=list(A, B))

fac.ar1mat forms the ar1 correlation matrix for a (generalized) factor

Description

Form the correlation matrix for a (generalized) factor where the correlation between the levels
follows an autocorrelation of order 1 (ar1) pattern.

Usage

fac.ar1mat(factor, rho)

Arguments

factor The (generalized) factor for which the correlation between its levels displays
an ar1 pattern.
rho The correlation parameter for the ar1 process.

Details

The method is: a) form an n x n matrix of all pairwise differences in the numeric values corre-
sponding to the observed levels of the factor by taking the difference between the following two
n x n matrices are equal: 1) each row contains the numeric values corresponding to the observed
levels of the factor, and 2) each column contains the numeric values corresponding to the observed
levels of the factor, b) replace each element of the pairwise difference matrix with rho raised to the
absolute value of the difference.

Value

An n x n matrix, where n is the length of the factor.

Author(s)

Chris Brien

See Also

fac.vcmat, fac.meanop, fac.sumop in package dae.


42 fac.combine

Examples
## set up a two-level factor and a three-level factor, both of length 12
A <- factor(rep(1:2, each=6))
B <- factor(rep(1:3, each=2, times=2))

## create a 12 x 12 ar1 matrix corrresponding to B


ar1.B <- fac.ar1mat(B, 0.6)

fac.combine Combines several factors into one

Description
Combines several factors into one whose levels are the combinations of the used levels of the
individual factors.

Usage
fac.combine(factors, order="standard", combine.levels=FALSE, sep=",", ...)

Arguments
factors A list of factors all of the same length.
order Either standard or yates. The order in which the levels combinations of
the factors are to be considered as numbered when forming the levels of the
combined factor; standard numbers them as if they are arranged in standard
order, that is with the levels of the first factor moving slowest and those of the
last factor moving fastest; yates numbers them as if they are arranged in Yates
order, that is with the levels of the first factor moving fastest and those of the
last factor moving slowest.
combine.levels A logical specifying whether the levels labels of the new factor are to be
combined from those of the factors being combined. The default is to use the
integers from 1 to the product of the numbers of combinations of used levels
of the individual factors, numbering the levels according to order.
sep A character string to separate the levels when combine.levels = TRUE.
... Further arguments passed to the factor call creating the new factor.

Value
A factor whose levels are formed form the observed combinations of the levels of the individ-
ual factors.

Author(s)
Chris Brien
fac.divide 43

See Also
fac.divide in package dae.

Examples
## set up two factors
A <- factor(rep(1:2, each=6))
B <- factor(rep(1:3, each=2, times=2))

## obtain six-level factor corresponding to the combinations of A and B


AB <- fac.combine(list(A,B))

fac.divide Divides a factor into several individual factors

Description
Takes a factor and divides it into several individual factors as if the levels in the original
combined.factor are numbered from one to its number of levels and correspond to the numbering
of the levels combinations of the individual factors when these are arranged in standard or Yates
order.

Usage
fac.divide(combined.factor, factor.names, order="standard")

Arguments
combined.factor
A factor that is to be divided into the individual factors listed in factor.names.
factor.names A list of factors to be formed. The names in the list are the names of the
factors and the component of a name is either a) a single numeric value that
is the number of levels, b) a numeric vector that contains the levels of the
factor, or c) a character vector that contains the labels of the levels of the
factor.
order Either standard or yates. The order in which the levels combinations of
the factors in factor.names are to be considered as numbered; standard
numbers them as if they are arranged in standard order, that is with the first
factor moving slowest and the last factor moving fastest; yates numbers them
as if they are arranged in Yates order, that is with the first factor moving fastest
and last factor moving slowest.

Value
A data.frame whose columns consist of the factors listed in factor.names and whose values
have been computed from the combined factor. All the factors will be of the same length.
44 fac.gen

Note
A single factor name may be supplied in the list in which case a data.frame is produced that
contains the single factor computed from the numeric vector. This may be useful when calling
this function from others.

Author(s)
Chris Brien

See Also
fac.combine in package dae.

Examples
## generate a small completely randomized design for 6 treatments
n <- 12
CRD.unit <- list(Unit = n)
treat <- factor(rep(1:4, each = 3))
CRD.lay <- designRandomize(allocated = treat, recipient = CRD.unit, seed=956)

## divide the treatments into two two-level factor A nd B


CRD.facs <- fac.divide(CRD.lay$treat, factor.names = list(A = 2, B = 2))

fac.gen Generate all combinations of several factors and, optionally, replicate


them

Description
Generate all combinations of several factors and, optionally, replicate them.

Usage
fac.gen(generate, each=1, times=1, order="standard")

Arguments
generate A list of named objects and numbers that specify the factors whose levels
are to be generated and the pattern in these levels.If a component of the list
is named, then the component should be either a) a single numeric value that
is the number of levels, b) a numeric vector that contains the levels of the
factor, or c) a character vector that contains the labels of the levels of the
factor.
each The number of times to replicate consecutively the elements of the levels gen-
erated according to pattern specified by the generate argument.
times The number of times to repeat the whole generated pattern of levels generated
according to pattern specified by the generate argument.
fac.gen 45

order Either standard or yates. The order in which the speed of cycling through
the levels is to move; combinations of the factors are to be considered as
numbered; standard cycles through the levels of the first factor slowest and
the last factor moving fastest; yates cycles through the levels of the first factor
fastest and last factor moving slowest.

Details

The levels of each factor are generated in a hierarchical pattern where the levels of one factor
are held constant while those of the adjacent factor are cycled through the complete set once. If a
number is supplied instead of a name, the pattern is generated as if a factor with that number of
levels had been supplied in the same position as the number. However, no levels are stored for
this unamed factor.

Value

A data.frame of generated levels with columns corresponding to the codefactors in the generate
list.

Warning

Avoid using factor names F and T as these might be confused with FALSE and TRUE.

Author(s)

Chris Brien

See Also

fac.combine in package dae

Examples
## generate a 2^3 factorial experiment with levels - and +, and
## in Yates order
mp <- c("-", "+")
fnames <- list(Catal = mp, Temp = mp, Press = mp, Conc = mp)
Fac4Proc.Treats <- fac.gen(generate = fnames, order="yates")

## Generate the factors A, B and D. The basic pattern has 4 repetitions


## of the levels of D for each A and B combination and 3 repetitions of
## the pattern of the B and D combinations for each level of A. This basic
## pattern has each combination repeated twice, and the whole of this
## is repeated twice. It generates 864 A, B and D combinations.
gen <- list(A = 3, 3, B = c(0,100,200), 4, D = c("0","1"))
fac.gen(gen, times=2, each=2)
46 fac.layout

fac.layout Generate a randomized layout for an experiment

Description
Warning: fac.layout will be deprecated in future versions, its synonym designRandomize being
preferred.
Given a systematic design, generate a layout for an experiment consisting of randomized factors
that are randomized to the unrandomized factors, taking into account the nesting between the
unrandomized factors for the design.

Usage
fac.layout(unrandomized, nested.factors=NULL, except=NULL,
randomized, seed=NULL, unit.permutation=TRUE)

Arguments
unrandomized A data.frame or a list of factors, along with their levels. If a list, the
name of each component of the list is a factor name and the component is
either a single numeric value that is the number of levels, a numeric vector
that contains the levels of the factor or a character codevector that contains
the labels of the levels of the factor.
nested.factors A list of the unrandomized factors that are nested in other factors in unrandomized.
The name of each component is the name of a factor that is nested and the com-
ponent is a character vector containing the factors within which it is nested. It
is emphasized that the nesting is a property of the design that is being employed
(it is only partly based on the intrinsic nesting.
except A character vector containing the names unrandomized factors that are to
be excepted from the randomization.
randomized A factor or a data.frame containing the values of the factor(s) to be ran-
domized.
seed A single value, interpreted as an integer, that specifies the starting value of the
random number generator.
unit.permutation
A logical indicating whether to include the .Unit and .Permutation columns
in the data.frame.

Details
This functon uses the method of randomization described by Bailey (1981). That is, a permutation
of the units that respects the nesting for the design, but does not permute any of the factors in the
except vector, is obtained. This permutation is applied to the unrandomized factors and then
a data.frame containing both the permuted unrandomized and unpermuted randomized factors
is formed. To produce the randomized layout, the rows of the joint data.frame are reordered so
fac.layout 47

that its unrandomized factors are in either standard order or, if a data.frame was suppled to
unrandomized, data frame order.
The .Units and .Permutation vectors enable one to swap between this permutation and the
randomized layout. The ith value in .Permutation gives the unit to which unit i was assigned in
the randomization.

Value
A data.frame consisting of the values for .Units and .Permutation vectors, provided unit.permutation
is TRUE, along with the values for the unrandomized and randomized factors that specify the ran-
domized layout for the experiment.

Author(s)
Chris Brien

References
Bailey, R.A. (1981) A unified approach to design of experiments. Journal of the Royal Statistical
Society, Series A, 144, 214–223.

See Also
fac.gen in package dae.

Examples
## generate a randomized layout for a 4 x 4 Latin square
## (the nested.factors agument is not needed here as none of the
## factors are nested)
LS.unit <- data.frame(row = ordered(rep(c("I","II","III","IV"), times=4)),
col = factor(rep(c(0,2,4,6), each=4)))
LS.ran <- data.frame(treat = factor(c(1:4, 2,3,4,1, 3,4,1,2, 4,1,2,3)))
data.frame(LS.unit, LS.ran)
LS.lay <- fac.layout(unrandomized=LS.unit, randomized=LS.ran, seed=7197132)
LS.lay[LS.lay$.Permutation,]

## generate a randomized layout for a replicated randomized complete


## block design, with the block factors arranged in standard order for
## rep then plot and then block
RCBD.unit <- list(rep = 2, plot=1:3, block = c("I","II"))
## specify that plot is nested in block and rep and that block is nested
## in rep
RCBD.nest <- list(plot = c("block","rep"), block="rep")
## generate treatment factor in systematic order so that they correspond
## to plot
tr <- factor(rep(1:3, each=2, times=2))
## obtain randomized layout
RCBD.lay <- fac.layout(unrandomized=RCBD.unit,
nested.factors=RCBD.nest,
randomized=tr, seed=9719532)
48 fac.match

#sort into the original standard order


RCBD.perm <- RCBD.lay[RCBD.lay$.Permutation,]
#resort into randomized order
RCBD.lay <- RCBD.perm[order(RCBD.perm$.Units),]

## generate a layout for a split-unit experiment in which:


## - the main-unit factor is A with 4 levels arranged in
## a randomized complete block design with 2 blocks;
## - the split-unit factor is B with 3 levels.
SPL.lay <- fac.layout(unrandomized=list(block = 2, main.unit = 4, split.unit = 3),
nested.factors=list(main.unit = "block",
split.unit = c("block", "main.unit")),
randomized=fac.gen(list(A = 4, B = 3), times = 2),
seed=155251978, unit.permutation=FALSE)

fac.match Match, for each combination of a set of columns in x, the row that has
the same combination in table

Description
Match, for each combination of a set of columns in x, the rows that has the same combination in
table. The argument multiples.allow controls what happens when there are multple matches in
table of a combination in x.

Usage
fac.match(x, table, col.names, nomatch = NA_integer_, multiples.allow = FALSE)

Arguments
x an R object, normally a data.frame, possibly a matrix.
table an R object, normally a data.frame, possibly a matrix.
col.names A character vector giving the columns in x and table that are to be matched.
nomatch The value to be returned in the case when no match is found. Note that it is
coerced to integer.
multiples.allow
A logical indicating whether multiple matches of a combination in x to those
in table is allowed. If multiples.allow is FALSE, an error is generated. If
multiples.allow is TRUE, the first occuence in table is matched. This func-
tion can be viewed as a generalization to multiple vectors of the match function
that applies to single vectors.

Value
A vector of length equal to x that gives the rows in table that match the combinations of col.names
in x. The order of the rows is the same as the order of the combintions in x. The value returned if a
combination is unmatched is specified in the nomatch argument.
fac.meanop 49

Author(s)
Chris Brien

See Also
match

Examples
## Not run:
#A single unmatched combination
kdata <- data.frame(Expt="D197-5",
Row=8,
Column=20, stringsAsFactors=FALSE)
index <- fac.match(kdata, D197.dat, c("Expt", "Row", "Column"))

# A matched and an unmatched combination


kdata <- data.frame(Expt=c("D197-5", "D197-4"),
Row=c(8, 10),
Column=c(20, 8), stringsAsFactors=FALSE)
index <- fac.match(kdata, D197.dat, c("Expt", "Row", "Column"))

## End(Not run)

fac.meanop computes the projection matrix that produces means

Description
Computes the symmetric projection matrix that produces the means corresponding to a (general-
ized) factor.

Usage
fac.meanop(factor)

Arguments
factor The (generalized) factor whose means the projection matrix computes from an
observation-length vector.

Details
The design matrix X for a (generalized) factor is formed with a column for each level of the
(generalized) factor, this column being its indicator variable. The projection matrix is formed as
X %*% (1/diag(r) %*% t(X), where r is the vector of levels replications.
A generalized factor is a factor formed from the combinations of the levels of several original
factors. Generalized factors can be formed using fac.combine.
50 fac.nested

Value
A projector containing the symmetric, projection matrix and its degrees of freedom.

Author(s)
Chris Brien

See Also
fac.combine, projector, degfree, correct.degfree, fac.sumop in package dae.
projector for further information about this class.

Examples
## set up a two-level factor and a three-level factor, both of length 12
A <- factor(rep(1:2, each=6))
B <- factor(rep(1:3, each=2, times=2))

## create a generalized factor whose levels are the combinations of A and B


AB <- fac.combine(list(A,B))

## obtain the operator that computes the AB means from a vector of length 12
M.AB <- fac.meanop(AB)

fac.nested creates a factor whose values are generated within those of the factor
nesting.fac

Description
Creates a factor whose levels are generated within those of the factor nesting.fac. All elements
of nesting.fac having the same level are numbered from 1 to the number of different elements
having that level.

Usage
fac.nested(nesting.fac, levels=NA, labels=NA, ...)

Arguments
nesting.fac The factor within each of whose levels the created factor is to be generated.
levels Optional vector of levels for the factor. Any data value that does not match
a value in levels will be NA in the factor. The default value of levels is
the the list of numbers from 1 to the maximum replication of the levels of
nesting.fac, represented as characters.
labels Optional vector of values to use as labels for the levels of the factor. The
default is as.character(levels).
... Further arguments passed to the factor call dreating the new factor.
fac.recode 51

Value
A factor that is a character vector with class attribute "factor" and a levels attribute which
determines what character strings may be included in the vector.

Note
The levels of nesting.fac do not have to be equally replicated.

Author(s)
Chris Brien

See Also
fac.gen in package dae, factor.

Examples
## set up factor A
A <- factor(c(1, 1, 1, 2, 2))

## create nested factor


B <- fac.nested(A)

fac.recode Recodes factor levels using values in a vector. The values in the
vector do not have to be unique.

Description
Recodes the levels and values of a factor using each value in the newlevels vector to replace the
corresponding value in the vector of levels of the factor.

Usage
fac.recode(factor, newlevels, ...)

Arguments
factor The factor to be recoded.
newlevels A vector of length levels(factor) containing values to use in the recoding.
... Further arguments passed to the factor call creating the new factor.

Value
A factor.
52 fac.sumop

Author(s)
Chris Brien

See Also
as.numfac and mpone in package dae, factor, relevel.

Examples
## set up a factor with labels
a <- factor(rep(1:4, 4), labels=c("A","B","C","D"))

## recode "A" and "D" to 1 and "B" and "C" to 2


b <- fac.recode(a, c(1,2,2,1), labels = c("a","b"))

fac.sumop computes the summation matrix that produces sums corresponding to


a (generalized) factor

Description
Computes the matrix that produces the sums corresponding to a (generalized) factor.

Usage
fac.sumop(factor)

Arguments
factor The (generalized) factor whose sums the summation matrix computes from an
observation-length vector.

Details
The design matrix X for a (generalized) factor is formed with a column for each level of the
(generalized) factor, this column being its indicator variable. The summation matrix is formed as
X %*% t(X).
A generalized factor is a factor formed from the combinations of the levels of several original
factors. Generalized factors can be formed using fac.combine.

Value
A symmetric matrix.

Author(s)
Chris Brien
fac.vcmat 53

See Also
fac.combine, fac.meanop in package dae.

Examples
## set up a two-level factoir and a three-level factor, both of length 12
A <- factor(rep(1:2, each=6))
B <- factor(rep(1:3, each=2, times=2))

## create a generlaized factor whose levels are the combinations of A and B


AB <- fac.combine(list(A,B))

## obtain the operator that computes the AB means from a vector of length 12
S.AB <- fac.sumop(AB)

fac.vcmat forms the variance matrix for the variance component of a (general-
ized) factor

Description
Form the variance matrix for a (generalized) factor whose effects for its different levels are indepen-
dently and identically distributed, with their variance given by the variance component; elements of
the matrix will equal either zero or sigma2 and displays compound symmetry.

Usage
fac.vcmat(factor, sigma2)

Arguments
factor The (generalized) factor for which the variance matrix is required.
sigma2 The variance component, being the of the random effects for the factor.

Details
The method is: a) form the n x n summation or relationship matrix whose elements are equal to zero
except for those elements whose corresponding elements in the following two n x n matrices are
equal: 1) each row contains the numeric values corresponding to the observed levels of the factor,
and 2) each column contains the numeric values corresponding to the observed levels of the factor,
b) multiply the summation matrix by sigma2.

Value
An n x n matrix, where n is the length of the factor.

Author(s)
Chris Brien
54 fitted.aovlist

See Also
fac.ar1mat, fac.meanop, fac.sumop in package dae.

Examples
## set up a two-level factor and a three-level factor, both of length 12
A <- factor(rep(1:2, each=6))
B <- factor(rep(1:3, each=2, times=2))

## create a 12 x 12 ar1 matrix corrresponding to B


vc.B <- fac.vcmat(B, 2)

Fac4Proc.dat Data for a 2^4 factorial experiment

Description
The data set come from an unreplicated 24 factorial experiment to investigate a chemical process.
The response variable is the Conversion percentage (Conv) and this is indexed by the 4 two-level
factors Catal, Temp, Press and Conc, with levels “-” and “+”. The data is aranged in Yates order.
Also included is the 16-level factor Runs which gives the order in which the combinations of the
two-level factors were run.

Usage
data(Fac4Proc.dat)

Format
A data.frame containing 16 observations of 6 variables.

Source
Table 10.6 of Box, Hunter and Hunter (1978) Statistics for Experimenters. New York, Wiley.

fitted.aovlist Extract the fitted values for a fitted model from an aovlist object

Description
Extracts the fitted values as the sum of the effects for all the fitted terms in the model, stopping at
error.term if this is specified. It is a method for the generic function fitted.

Usage
## S3 method for class 'aovlist'
fitted(object, error.term=NULL, ...)
fitted.aovlist 55

Arguments

object An aovlist object created from a call to aov.


error.term The term from the Error function down to which effects are extracted for adding
to the fitted values. The order of terms is as given in the ANOVA table. If
error.term is NULL effects are extracted from all Error terms.
... Further arguments passed to or from other methods.

Value

A numeric vector of fitted values.

Note

Fitted values will be the sum of effects for terms from the model, but only for terms external to any
Error function. If you want effects for terms in the Error function to be included, put them both
inside and outside the Error function so they are occur twice.

Author(s)

Chris Brien

See Also

fitted.errors, resid.errors, tukey.1df in package dae.

Examples

## set up data frame for randomized complete block design in Table 4.4 from
## Box, Hunter and Hunter (2005) Statistics for Experimenters. 2nd edn
## New York, Wiley.
RCBDPen.dat <- fac.gen(list(Blend=5, Flask=4))
RCBDPen.dat$Treat <- factor(rep(c("A","B","C","D"), times=5))
RCBDPen.dat$Yield <- c(89,88,97,94,84,77,92,79,81,87,87,
85,87,92,89,84,79,81,80,88)

## perform the analysis of variance


RCBDPen.aov <- aov(Yield ~ Blend + Treat + Error(Blend/Flask), RCBDPen.dat)
summary(RCBDPen.aov)

## two equivalent ways of extracting the fitted values


fit <- fitted.aovlist(RCBDPen.aov)
fit <- fitted(RCBDPen.aov, error.term = "Blend:Flask")
56 fitted.errors

fitted.errors Extract the fitted values for a fitted model

Description
An alias for the generic function fitted. When it is available, the method fitted.aovlist extracts
the fitted values, which is provided in the dae package to cover aovlist objects.

Usage
## S3 method for class 'errors'
fitted(object, error.term=NULL, ...)

Arguments
object An aovlist object created from a call to aov.
error.term The term from the Error function down to which effects are extracted for adding
to the fitted values. The order of terms is as given in the ANOVA table. If
error.term is NULL effects are extracted from all Error terms.
... Further arguments passed to or from other methods.

Value
A numeric vector of fitted values.

Warning
See fitted.aovlist for specific information about fitted values when an Error function is used
in the call to the aov function.

Author(s)
Chris Brien

See Also
fitted.aovlist, resid.errors, tukey.1df in package dae.

Examples
## set up data frame for randomized complete block design in Table 4.4 from
## Box, Hunter and Hunter (2005) Statistics for Experimenters. 2nd edn
## New York, Wiley.
RCBDPen.dat <- fac.gen(list(Blend=5, Flask=4))
RCBDPen.dat$Treat <- factor(rep(c("A","B","C","D"), times=5))
RCBDPen.dat$Yield <- c(89,88,97,94,84,77,92,79,81,87,87,
85,87,92,89,84,79,81,80,88)
get.daeTolerance 57

## perform the analysis of variance


RCBDPen.aov <- aov(Yield ~ Blend + Treat + Error(Blend/Flask), RCBDPen.dat)
summary(RCBDPen.aov)

## three equivalent ways of extracting the fitted values


fit <- fitted.aovlist(RCBDPen.aov)
fit <- fitted(RCBDPen.aov, error.term = "Blend:Flask")
fit <- fitted.errors(RCBDPen.aov, error.term = "Blend:Flask")

get.daeTolerance Gets the value of daeTolerance for the package dae

Description

A function that gets the vector of values such that, in dae functions, values less than it are consid-
ered to be zero.

Usage

get.daeTolerance()

Value

The vector of two values for daeTolerance, one named element.tol that is used for elements of
matrices and a second named element.eigen that is used for eigenvalues and quantities based on
them, such as efficiency factors.

Author(s)

Chris Brien

See Also

set.daeTolerance.

Examples

## get daeTolerance.
get.daeTolerance()
58 interaction.ABC.plot

harmonic.mean Calcuates the harmonic mean.

Description
A function to calcuate the harmonic mean of a set of nonzero numbers.

Usage
harmonic.mean(x)

Arguments
x An object from whose elements the harmonic mean is to be computed.

Details
All the elements of x are tested as being less than daeTolerance, which is initially set to .Machine$double.eps ^ 0.5
(about 1.5E-08). The function set.daeTolerance can be used to change daeTolerance.

Value
A numeric. Returns Inf if x contains a value close to zero

Examples
y <- c(seq(0.1,1,0.2))
harmonic.mean(y)

interaction.ABC.plot Plots an interaction plot for three factors

Description
Plots a function (the mean by default) of the response for the combinations of the three factors
specified as the x.factor (plotted on the x axis of each plot), the groups.factor (plotted as sepa-
rate lines in each plot) and the trace.factor (its levels are plotted in different plots). Interaction
plots for more than three factors can be produced by using fac.combine to combine all but two
of them into a single factor that is specified as the trace.factor.

Usage
interaction.ABC.plot(response, x.factor, groups.factor,
trace.factor,data, fun="mean", title="A:B:C Interaction Plot",
xlab, ylab, key.title, lwd=4, columns=2, ggplotFuncs = NULL, ...)
interaction.ABC.plot 59

Arguments
response A numeric vector containing the response variable from which a function (the
mean by default) is computed for plotting on the y-axis.
x.factor The factor to be plotted on the x-axis of each plot. If the levels are numeric
values stored as characters, they will be converted to numeric values for plotting.
If they are actually numeric codes for nonnumeric categories and you want them
plotted on a discrete scale then you should employ nonumeric codings, such as
‘-’ and ‘+’ or ‘N’ and ‘Y’ or something similar.
groups.factor The factor plotted as separate lines in each plot.
trace.factor The factor for whose levels there are separate plots.
data A data.frame containing the three factors and the response.
fun The function to be computed from the response for each combination of the
three factors x.factor, groups.factor and trace.factor. By default, the
mean is computed for each combination.
title Title for plot window. By default it is "A:B:C Interaction Plot".
xlab Label for the x-axis. By default it is the name of the x.factor.
ylab Label for the y-axis. By default it is the name of the response.
key.title Label for the key (legend) to the lines in each plot. By default it is the name of
the groups.factor.
lwd The width of the lines. By default it is 4.
columns The number of columns for arranging the several plots for the levels of the
groups.factor. By default it is 2.
ggplotFuncs A list, each element of which contains the results of evaluating a ggplot func-
tion. It is created by calling the list function with a ggplot function call for
each element.
... Other arguments that are passed down to ggplot methods.

Value
An object of class "ggplot", which can be plotted using print.

Author(s)
Chris Brien

See Also
fac.combine in package dae, interaction.plot.

Examples
## Not run:
## plot for Example 14.1 from Mead, R. (1990). The Design of Experiments:
## Statistical Principles for Practical Application. Cambridge,
## Cambridge University Press.
60 is.allzero

## use ?SPLGrass.dat for details


data(SPLGrass.dat)
interaction.ABC.plot(Main.Grass, x.factor=Period,
groups.factor=Spring, trace.factor=Summer,
data=SPLGrass.dat,
title="Effect of Period, Spring and Summer on Main Grass")

## plot for generated data


## use ?ABC.Interact.dat for data set details
data(ABC.Interact.dat)
## Add standard errors for plotting
## - here data contains a single value for each combintion of A, B and C
## - need to supply name for data twice
ABC.Interact.dat$se <- rep(c(0.5,1), each=4)
interaction.ABC.plot(MOE, A, B, C, data=ABC.Interact.dat,
ggplotFunc=list(geom_errorbar(data=ABC.Interact.dat,
aes(ymax=MOE+se, ymin=MOE-se),
width=0.2)))

## End(Not run)

is.allzero Tests whether all elements are approximately zero

Description
A single-line function that tests whether all elements are zero (approximately).

Usage
is.allzero(x)

Arguments
x An object whose elements are to be tested.

Details
The mean of the absolute values of the elements of x is tested to determine if it is less than
daeTolerance, which is initially set to .Machine$double.eps ^ 0.5 (about 1.5E-08). The func-
tion set.daeTolerance can be used to change daeTolerance.

Value
A logical.

Author(s)
Chris Brien
is.projector 61

Examples
## create a vector of 9 zeroes and a one
y <- c(rep(0,9), 1)

## check that vector is only zeroes is FALSE


is.allzero(y)

is.projector Tests whether an object is a valid object of class projector

Description
Tests whether an object is a valid object of class "projector".

Usage
is.projector(object)

Arguments
object The matrix to be made into a projector.

Details
The function is.projector tests whether the object consists of a matrix that is square, symmetric
and idempotent. In checking symmetry and idempotency, the equality of the matrix with either its
transpose or square is tested. In this, a difference in elements is considered to be zero if it is less
than daeTolerance, which is initially set to .Machine$double.eps ^ 0.5 (about 1.5E-08). The
function set.daeTolerance can be used to change daeTolerance.

Value
TRUE or FALSE depending on whether the object is a valid object of class "projector".

Warning
The degrees of freedom are not checked. correct.degfree can be used to check them.

Author(s)
Chris Brien

See Also
projector, correct.degfree in package dae.
projector for further information about this class.
62 marginality

Examples
## set up a 2 x 2 mean operator that takes the mean of a vector of 2 values
m <- matrix(rep(0.5,4), nrow=2)

## create an object of class projector


proj.m <- projector(m)

## check that it is a valid projector


is.projector(proj.m)

LatticeSquare_t49.des A Lattice square design for 49 treatments

Description
The systematic design for a lattice square for 49 treatments consisting of four 7 x 7 squares. For
more details see the vignette daeDesignNotes.pdf.

Usage
data(LatticeSquare_t49.des)

Format
A data.frame containing 196 observations of 4 variables.

Source
Cochran and Cox (1957) Experimental Designs. 2nd edn Wiley, New York.

marginality Extracts the marginality matrix (matrices) from a


pstructure.object or a pcanon.object.

Description
Produces (i) a marginality matrix for the formula in a call to pstructure.formula or (ii) a list
containing the marginlity matrices, one for each formula in the formulae argument of a call to
designAnatomy.
A marginality matrix for a set of terms is a square matrix with a row and a column for each ternon-
aliased term. Its elements are zeroes and ones, the entry in the ith row and jth column indicates
whether or not the ith term is marginal to the jth term i.e. the column space of the ith term is a
subspace of that for the jth term and so the source for the jth term will be orthogonal to that for the
ith term.
marginality 63

Usage
## S3 method for class 'pstructure'
marginality(object, ...)
## S3 method for class 'pcanon'
marginality(object, ...)

Arguments
object A pstructure.object produced by pstructure.formula or pcanon.object
produced by designAnatomy.
... Further arguments passed to or from other methods. Unused at present.

Value
If object is a pstructure.object then a matrix containing the marginality matrix for the terms
obtained from the formuula in the call to pstructure.formula.
If object is a pcanon.object then a list with a component for each formula, each component
having a marginality matrix that corresponds to one of the formulae in the call to designAnatomy.
The components of the list will have the same names as the componeents of the formulae list
and so will be unnamed if the components of the latter list are unnamed.

Author(s)
Chris Brien

See Also
pstructure.formula, designAnatomy, summary.pcanon, proj2.efficiency, proj2.combine,
proj2.eigen,
pstructure in package dae, eigen.
projector for further information about this class.

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)

##obtain pstructure.object and extract marginality matrix


unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
unit.marg <- marginality(unit.struct)

##obtain combined decomposition and extract marginality matrices


unit.trt.canon <- designAnatomy(list(unit=~ Block/Unit, trt=~ trt), data = PBIBD2.lay)
marg <- marginality(unit.trt.canon)
64 mat.ar2

mat.ar1 Forms an ar1 correlation matrix

Description
Form the correlation matrix of order order whose correlations follow the ar1 pattern. The matrix
is banded and has diagonal elements equal to one and the off-diagonal element in the ith row and
jth column equal to ρk where k = |i − j|.

Usage
mat.ar1(rho, order)

Arguments
rho The correlation on the first off-diagonal.
order The order of the matrix to be formed.

Value
A banded correlation matrix whose elements follow an ar1 pattern.

Author(s)
Chris Brien

See Also
mat.I, mat.J, mat.exp, mat.gau, mat.banded, mat.ar2, mat.ar3, mat.sar2, mat.ma1, mat.ma2,
mat.arma

Examples
corr <- mat.ar1(rho=0.4, order=4)

mat.ar2 Forms an ar2 correlation matrix

Description
Form the correlation matrix of order order whose correlations follow the ar2 pattern. The resulting
matrix is banded.

Usage
mat.ar2(ARparameters, order)
mat.ar3 65

Arguments
ARparameters A numeric containing the two autoregressive parameter values of the process,
being the weights given to the lag 1 and lag 2 response values.
order The order of the matrix to be formed.

Details
The correlations in the correlation matrix, corr say, are calculated from the autoregressive param-
eters, ARparameters. The values in

• the diagonal (k = 1) of corr are one;


• the first subdiagonal band (k = 2) of corr are equal to
ARparameters[1]/(1-ARparameters[2]);
• in subsequent disgonal bands, (k = 3:order), of corr are
ARparameters[1]*corr[k-1] + ARparameters[2]*corr[k-2].

Value
A banded correlation matrix whose elements follow an ar2 pattern.

Author(s)
Chris Brien

See Also
mat.I, mat.J, mat.exp, mat.gau, mat.banded, mat.ar1, mat.ar3, mat.sar2, mat.ma1, mat.ma2,
mat.arma

Examples
corr <- mat.ar2(ARparameters = c(0.4, 0.2), order = 4)

mat.ar3 Forms an ar3 correlation matrix

Description
Form the correlation matrix of order order whose correlations follow the ar3 pattern. The resulting
matrix is banded.

Usage
mat.ar3(ARparameters, order)
66 mat.ar3

Arguments

ARparameters A numeric containing the three autoregressive parameter values of the process,
being the weights given to the lag 1, lag 2 and lag 3 response values.
order The order of the matrix to be formed.

Details

The correlations in the correlation matrix, corr say, are calculated from the autoregressive param-
eters, ARparameters.
Let omega = 1 - ARparameters[2] - ARparameters[3] * (ARparameters[1] + ARparameters[3]).
Then the values in

• the diagonal of corr (k = 1) are one;


• the first subdiagonal band (k = 2) of corr are equal to
(ARparameters[1] + ARparameters[2]*ARparameters[3]) / omega;
• the second subdiagonal band (k = 3) of corr are equal to
(ARparameters[1] * (ARparameters[1] + ARparameters[3]) +
ARparameters[2] * (1 - ARparameters[2])) / omega;
• the subsequent subdiagonal bands, (k = 4:order), of corr are equal to
ARparameters[1]*corr[k-1] + ARparameters[2]*corr[k-2] + ARparameters[3]*corr[k-3].

Value

A banded correlation matrix whose elements follow an ar3 pattern.

Author(s)

Chris Brien

See Also

mat.I, mat.J, mat.banded, mat.exp, mat.gau, mat.ar1, mat.ar2, mat.sar2, mat.ma1, mat.ma2,
mat.arma

Examples

corr <- mat.ar3(ARparameters = c(0.4, 0.2, 0.1), order = 4)


mat.arma 67

mat.arma Forms an arma correlation matrix

Description
Form the correlation matrix of order order whose correlations follow the arma pattern. The re-
sulting matrix is banded.

Usage
mat.arma(ARparameter, MAparameter, order)

Arguments
ARparameter A numeric value for the autoregressive parameter of the process, being the
weight given to the lag 1 response values.
MAparameter A numeric value for the moving average parameter of the process, being the
weight given to the lag 1 random variable.
order The order of the matrix to be formed.

Details
The correlations in the correlation matrix, corr say, are calculated from the correlation parameters,
ARparameters. The values in

• the diagonal (k = 1) of corr are one;


• the first subdiagonal band (k = 2) of corr are equal to
ARparameters[1]/(1-ARparameters[2]);
• in subsequent disgonal bands, (k = 3:order), of corr are
ARparameters[1]*corr[k-1] + ARparameters[2]*corr[k-2].

Value
A banded correlation matrix whose elements follow an arma pattern.

Author(s)
Chris Brien

See Also
mat.I, mat.J, mat.exp, mat.gau, mat.banded, mat.ar1, mat.ar3, mat.sar2, mat.ma1, mat.ma2

Examples
corr <- mat.arma(ARparameter = 0.4, MAparameter = -0.2, order = 4)
68 mat.banded

mat.banded Form a banded matrix from a vector of values

Description

Takes the first value in x and places it down the diagonal of the matrix. Takes the second value
in x and places it down the first subdiagonal, both below and above the diagonal of the matrix.
The third value is placed in the second subdiagonal and so on, until the bands for which there are
elements in x have been filled. All other elements in the matrix will be zero.

Usage

mat.banded(x, nrow, ncol)

Arguments

x A numeric containing the values for each band from 1 to the length of x.
nrow The number of rows in the banded matrix being formed.
ncol The number of columns in the banded matrix being formed.

Value

An nrow × ncol matrix.

Author(s)

Chris Brien

See Also

matmult, mat.ar1, mat.ar2, mat.ar3, mat.sar2, mat.exp, mat.gau, mat.ma1, mat.ma2, mat.arma
mat.I, mat.J

Examples

m <- mat.banded(c(1,0.6,0.5), 5,5)


m <- mat.banded(c(1,0.6,0.5), 3,4)
m <- mat.banded(c(1,0.6,0.5), 4,3)
mat.dirprod 69

mat.dirprod Forms the direct product of two matrices

Description

Form the direct product of the m×n matrix A and the p×q matrix B. It is also called the Kroneker
product and the right direct product. It is defined to be the result of replacing each element of A,
aij , with aij B. The result matrix is mp × nq.
The method employed uses the rep function to form two mp × nq matrices: (i) the direct product of
A and J, and (ii) the direct product of J and B, where each J is a matrix of ones whose dimensions
are those required to produce an mp × nq matrix. Then the elementwise product of these two
matrices is taken to yield the result.

Usage

mat.dirprod(A, B)

Arguments

A The left-hand matrix in the product.


B The right-hand matrix in the product.

Value

An mp × nq matrix.

Author(s)

Chris Brien

See Also

matmult, mat.dirprod

Examples
col.I <- mat.I(order=4)
row.I <- mat.I(order=28)
V <- mat.dirprod(col.I, row.I)
70 mat.dirsum

mat.dirsum Forms the direct sum of a list of matrices

Description

The direct sum is the partitioned matrices whose diagonal submatrices are the matrices from which
the direct sum is to be formed and whose off-diagonal submatrices are conformable matrices of ze-
roes. The resulting matrix is m × n, where m is the sum of the numbers of rows of the contributing
matrices and n is the sum of their numbers of columns.

Usage

mat.dirsum(matrices)

Arguments

matrices A list, each of whose component is a matrix.

Value

An m × n matrix.

Author(s)

Chris Brien

See Also

mat.dirprod, matmult

Examples

m1 <- matrix(1:4, nrow=2)


m2 <- matrix(11:16, nrow=3)
m3 <- diag(1, nrow=2, ncol=2)
dsum <- mat.dirsum(list(m1, m2, m3))
mat.exp 71

mat.exp Forms an exponential correlation matrix

Description
Form the correlation matrix of order equal to the length of coordinates. The matrix has diagonal
elements equal to one and the off-diagonal element in the ith row and jth column equal to ρk where
k = |coordinate[i] − coordinate[j]|.

Usage
mat.exp(rho, coordinates)

Arguments
rho The correlation for points a distance of one apart.
coordinates The coordinates of points whose correlation matrix is to be formed.

Value
A correlation matrix whose elements depend on the power of the absolute distance apart.

Author(s)
Chris Brien

See Also
mat.I, mat.J, mat.banded, mat.ar1, mat.ar2, mat.ar3, mat.sar2, mat.ma1, mat.ma2, mat.arma,
mat.gau

Examples
corr <- mat.exp(coordinates=c(3:6, 9:12, 15:18), rho=0.1)

mat.gau Forms an exponential correlation matrix

Description
Form the correlation matrix of order equal to the length of coordinates. The matrix has diagonal
elements equal to one and the off-diagonal element in the ith row and jth column equal to ρk where
k = (coordinate[i] − coordinate[j])2 .
72 mat.I

Usage
mat.gau(rho, coordinates)

Arguments
rho The correlation for points a distance of one apart.
coordinates The coordinates of points whose correlation matrix is to be formed.

Value
A correlation matrix whose elements depend on the power of the absolute distance apart.

Author(s)
Chris Brien

See Also
mat.I, mat.J, mat.banded, mat.ar1, mat.ar2, mat.ar3, mat.sar2, mat.ma1, mat.ma2, mat.arma,
mat.exp

Examples
corr <- mat.gau(coordinates=c(3:6, 9:12, 15:18), rho=0.1)

mat.I Forms a unit matrix

Description
Form the unit or identity matrix of order order.

Usage
mat.I(order)

Arguments
order The order of the matrix to be formed.

Value
A square matrix whose diagonal elements are one and its off-diagonal are zero.

Author(s)
Chris Brien
mat.J 73

See Also

mat.J, mat.ar1

Examples

col.I <- mat.I(order=4)

mat.J Forms a square matrix of ones

Description

Form the square matrix of ones of order order.

Usage

mat.J(order)

Arguments

order The order of the matrix to be formed.

Value

A square matrix all of whose elements are one.

Author(s)

Chris Brien

See Also

mat.I, mat.ar1

Examples

col.J <- mat.J(order=4)


74 mat.ma2

mat.ma1 Forms an ma1 correlation matrix

Description
Form the correlation matrix of order order whose correlations follow the ma1 pattern. The matrix
is banded and has diagonal elements equal to one and subdiagonal element equal to
-MAparameter / (1 + MAparameter*MAparameter).

Usage
mat.ma1(MAparameter, order)

Arguments
MAparameter The moving average parameter, being the weight applied to the lag 1 random
pertubation.
order The order of the matrix to be formed.

Value
A banded correlation matrix whose elements follow an ma1 pattern.

Author(s)
Chris Brien

See Also
mat.I, mat.J, mat.exp, mat.gau, mat.banded, mat.ar2, mat.ar3, mat.sar2, mat.ma2, mat.arma

Examples
corr <- mat.ma1(MAparameter=0.4, order=4)

mat.ma2 Forms an ma2 correlation matrix

Description
Form the correlation matrix of order order whose correlations follow the ma2 pattern. The result-
ing matrix is banded.

Usage
mat.ma2(MAparameters, order)
mat.ncssvar 75

Arguments
MAparameters A numeric containing the two moving average parameter values of the process,
being the weights given to the lag 1 and lag 2 random pertubations.
order The order of the matrix to be formed.

Details
The correlations in the correlation matrix, corr say, are calculated from the moving average param-
eters, MAparameters. The values in
• the diagonal (k = 1) of corr are one;
• the first subdiagonal band (k = 2) of corr are equal to
-MAparameters[1]*(1 - MAparameters[2]) / div;
• the second subdiagonal bande (k = 3) of corr are equal to -MAparameters[2] / div;
• in subsequent disgonal bands, (k = 4:order), of corr are zero,
where div = 1 + MMAparameters[1]*MAparameter[1] + MAparameters[2]*MAparameters[2].

Value
A banded correlation matrix whose elements follow an ma2 pattern.

Author(s)
Chris Brien

See Also
mat.I, mat.J, mat.exp, mat.gau, mat.banded, mat.ar1, mat.ar3, mat.sar2, mat.ma1, mat.arma

Examples
corr <- mat.ma2(MAparameters = c(0.4, -0.2), order = 4)

mat.ncssvar Calculates the variance matrix of the random effects for a natural cu-
bic smoothing spline

Description
Calculates the variance matrix of the random effects for a natural cubic smoothing spline. It is the
tri-diagonal matrix Gs given by Verbyla et al., (1999) multiplied by the variance component for the
random spline effects.

Usage
mat.ncssvar(sigma2s = 1, knot.points, print = FALSE)
76 mat.sar

Arguments
sigma2s A numeric giving the value of the variance component for the random spline ef-
fects. The smoothing parameter is then the inverse of the ratio of this component
to the residual variance.
knot.points A numeric giving the values of the knots point used in fitting the spline. These
must be orderd in increasing order.
print A logical indicating whether to print the matrix.

Value
A matrix containing the variances and covariances of the random spline effects.

Author(s)
Chris Brien

References
Verbyla, A. P., Cullis, B. R., Kenward, M. G., and Welham, S. J. (1999). The analysis of designed
experiments and longitudinal data by using smoothing splines (with discussion). Journal of the
Royal Statistical Society, Series C (Applied Statistics), 48, 269-311.

See Also
Zncsspline.

Examples
Gs <- mat.ncssvar(knot.points = 1:10)

mat.sar Forms an sar correlation matrix

Description
Form the correlation matrix of order order whose correlations follow the sar pattern. The resulting
matrix is banded.

Usage
mat.sar(SARparameter, order)

Arguments
SARparameter A numeric containing the single value of the parameter from which the correla-
tions are calculated.
order The order of the matrix to be formed.
mat.sar2 77

Details
The values of the correlations in the correlation matrix, corr say, are calculated from the SARpa-
rameter, gamma as follows. The values in

• the diagonal of corr (k = 1) are one;


• the first subdiagonal band (k = 2) of corr are equal to gamma/(1 + (gamma * gamma / 4));
• the subsequent subdiagonal bands, (k = 3:order), of corr are equal to
gamma * corr[k-1] - (gamma * gamma/4) * corr[k-2].

Value
A banded correlation matrix whose elements follow an sar pattern.

Author(s)
Chris Brien

See Also
mat.I, mat.J, mat.banded, mat.exp, mat.gau, mat.ar1, mat.ar2, mat.ar3, mat.sar2, mat.ma1,
mat.ma2, mat.arma

Examples
corr <- mat.sar(SARparameter = -0.4, order = 4)

mat.sar2 Forms an sar2 correlation matrix

Description
Form the correlation matrix of order order whose correlations follow the sar2 pattern, a pattern
used in crop competition models. The resulting matrix is banded and is a constrained AR3 matrix.

Usage
mat.sar2(gamma, order, print = NULL)

Arguments
gamma A numeric containing the two values of gamma, being parameters linked with
spatial dependence and competition.
order The order of the matrix to be formed.
print A character giving the object to be printed. Currently, only the claculated
values of the ar3parameters can be printed. If NULL, nothing is printed.
78 mat.Vpred

Details
The values of the AR3 parameters, phi, are calculated from the gammas as follows:
phi[1] = gamma[1] + 2 * gamma[2]; phi[2] = -gamma[2] * (2*gamma[2] + gamma[1]);
phi[3] = gamma[1] * gamma[2] * gamma[2].
Then the correlations in the correlation matrix, corr say, are calculated from the correlation pa-
rameters, phi. Let omega = 1 - phi[2] - phi[3] * (phi[1] + phi[3]). Then the values
in

• the diagonal of corr (k = 1) are one;


• the first subdiagonal band (k = 2) of corr are equal to (phi[1] + phi[2]*phi[3]) / omega;
• the second subdiagonal band (k = 3) of corr are equal to
(phi[1] * (phi[1] + phi[3]) + phi[2] * (1 - phi[2])) / omega;
• the subsequent subdiagonal bands, (k = 4:order), of corr are equal to
phi[1]*corr[k-1] + phi[2]*corr[k-2] + phi[3]*corr[k-3].

Value
A banded correlation matrix whose elements follow an sar2 pattern.

Author(s)
Chris Brien

See Also
mat.I, mat.J, mat.banded, mat.exp, mat.gau, mat.ar1, mat.ar2, mat.ar3, mat.sar, mat.ma1,
mat.ma2, mat.arma

Examples
corr <- mat.sar2(gamma = c(-0.4, 0.2), order = 4)
corr <- mat.sar2(gamma = c(-0.4, 0.2), order = 4, print = "ar3")

mat.Vpred Calculates the variances of a set of predicted effects from a mixed


model

Description
For n observations, w effects to be predicted, f nuiscance fixed effects and r nuisance random effects,
the variances of a set of predicted effects is calculated using the incidence matrix for the effects to
be predicted and, optionally, a variance matrix of the effects, an incidence matrix for the nuisance
fixed factors and covariates, the variance matrix of the nuisance random effects in the mixed model
and the residual variance matrix.
This function has been superseded by mat.Vpredicts, which allows the use of both matrices and
formulae.
mat.Vpred 79

Usage
mat.Vpred(W, Gg = 0, X = matrix(1, nrow = nrow(W), ncol = 1), Vu = 0, R, eliminate)

Arguments
W The n x w incidence matrix for the w effects to be predicted.
Gg The w x w variance matrix of the w effects to be predicted. If the effects to be
predicted are fixed, set to 0.
X The n x f incidence matrix for the f nuisance fixed factors and covariates. The
default is a column vector of ones.
Vu The n x r variance matrix of the r nuisance random effects. If there are none,
set to zero.
R The residual variance matrix.
eliminate The n x n projector onto the subspace corresponding to the effects to be
eliminated from the information matrix prior to inverting it to form the variance
matrix of the predicted effects. It is only appropriate to use this option when
the effects to be predicted are fixed.

Details
Firstly the information matrix is calculated as
A <- t(W) %*% Vinv %*% W + ginv(Gg) - A%*%ginv(t(X)%*%Vinv%*%X)%*%t(A), where
Vinv <- ginv(Vu + R), A = t(W) %*% Vinv %*% X and ginv(B) is the unique Moore-Penrose
inverse of B formed using the eigendecomposition of B.
If eliminate is set and the effects to be predicted are fixed then the reduced information matrix is
calculated as A <- (I - eliminate) Vinv (I - eliminate).
Finally, the variance of the predicted effects is calculated: Vpred <- ginv(A).

Value
A w x w matrix containing the variances and covariances of the predicted effects.

Author(s)
Chris Brien

References
Smith, A. B., D. G. Butler, C. R. Cavanagh and B. R. Cullis (2015). Multi-phase variety trials
using both composite and individual replicate samples: a model-based design approach. Journal of
Agricultural Science, 153, 1017-1029.

See Also
designAmeasures, mat.Vpredicts.
80 mat.Vpredicts

Examples
## Reduced example from Smith et al. (2015)
## Generate two-phase design
mill.fac <- fac.gen(list(Mrep = 2, Mday = 2, Mord = 3))
field.lay <- fac.gen(list(Frep = 2, Fplot = 4))
field.lay$Variety <- factor(c("D","E","Y","W","G","D","E","M"),
levels = c("Y","W","G","M","D","E"))
start.design <- cbind(mill.fac, field.lay[c(3,4,5,8,1,7,3,4,5,8,6,2),])
rownames(start.design) <- NULL

## Set up matrices
n <- nrow(start.design)
W <- model.matrix(~ -1+ Variety, start.design)
ng <- ncol(W)
Gg<- diag(1, ng)
Vu <- with(start.design, fac.vcmat(Mrep, 0.3) +
fac.vcmat(fac.combine(list(Mrep, Mday)), 0.2) +
fac.vcmat(Frep, 0.1) +
fac.vcmat(fac.combine(list(Frep, Fplot)), 0.2))
R <- diag(1, n)

## Calculate the variance matrix of the predicted random Variety effects


Vp <- mat.Vpred(W = W, Gg = Gg, Vu = Vu, R = R)
designAmeasures(Vp)

## Calculate the variance matrix of the predicted fixed Variety effects,


## elminating the grand mean
Vp.reduc <- mat.Vpred(W = W, Gg = 0, Vu = Vu, R = R,
eliminate = projector(matrix(1, nrow = n, ncol = n)/n))
designAmeasures(Vp.reduc)

mat.Vpredicts Calculates the variances of a set of predicted effects from a mixed


model, based on supplied matrices or formulae.

Description
For n observations, w effects to be predicted, f nuiscance fixed effects, r nuisance random effects
and n residuals, the variances of a set of predicted effects is calculated using the incidence matrix for
the effects to be predicted and, optionally, a variance matrix of these effects, an incidence matrix for
the nuisance fixed factors and covariates, the variance matrix of the nuisance random effects and the
residual variance matrix. The matrices can be supplied directly or using formulae and a matrix
specifying the variances of the nuisance random effects. The difference between mat.Vpredicts
and mat.Vpred is that the former has different names for equivalent arguments and the latter does
not allow for the use of formulae.

Usage
mat.Vpredicts(target, Gt = 0, fixed = ~ 1, random, G, R, design,
eliminate, keep.order = TRUE)
mat.Vpredicts 81

Arguments
target The n x w incidence matrix for the w effects targetted for prediction, or a
formula from which the matrix can be generated.
Gt The value of the variance component for the targetted effects or the w x w
variance matrix of the w targetted effects. If the targetted effects are fixed, set
Gt to 0.
fixed The n x f incidence matrix for the f nuisance fixed effects and covariates, or
a formula from which the matrix can be generated. The default is a formula
for an intercept-only model.
random The n x r incidence matrix for the r nuisance randm effects, or a formula
from which the matrix can be generated. The default is 0, which implies that
there are no random effects.
G The r x r variance matrix of the r nuisance random effects. This term only
needs to be set if random is a formula. Then it is set to a list, in which each
component is either a single value or a matrix; there needs to be a component
for each term in the expanded formula, with the order of the terms and compo-
nents matching. If it is a single value, a diagonal matrix of dimension equal to
the product of the numbers of levels of the factors in its term. If it is a matrix, its
dimension must be equal to the product of the numbers of levels of the factors
in its term.
R The n x n residual variance matrix. If R is not set in the call, then it is set to
the identity matrix.
design A data.frame containing the design to be used in an experiment from which
predictions are to be obtained. It is not required when the only formula specified
is an intercept-only formula.
eliminate The n x n projector onto the subspace corresponding to the effects to be
eliminated from the information matrix prior to inverting it to form the variance
matrix of the predicted effects. It is only appropriate to use this option when
the effects to be predicted are fixed.
keep.order A logical indicating whether the terms should keep their position in the ex-
panded formula projector, or reordered so that main effects precede two-factor
interactions, which precede three-factor interactions and so on.

Details
The mixed model for which the predictions are to be obtained is of the form Y = Xβ + W w +
Zu + e, where W is the incidence matrix for the target predicted effects w, X is the is incidence
matrix for the fixed nuisance effects β, Z is the is incidence matrix for the random nuisance effects
u, e are the residuals; the u are assumed to have variance matrix G so that their contribution to the
variance matrix for Y is V u = ZGZ T and e is assumed to have variance matrix R. If the target
effects are random then the variance matrix for w is Gt so that their contribution to the variance
matrix for Y is W Gt W T .
As described in Hooks et al. (2009, Equation 19), the information matrix is calculated as
A <- t(W) %*% Vinv %*% W + ginv(Gg) - A%*%ginv(t(X)%*%Vinv%*%X)%*%t(A), where
Vinv <- ginv(Vu + R), A = t(W) %*% Vinv %*% X and ginv(B) is the unique Moore-Penrose
inverse of B formed using the eigendecomposition of B.
82 mat.Vpredicts

Then, if eliminate is set and the effects to be predicted are fixed then the reduced information
matrix is calculated as A <- (I - eliminate) Vinv (I - eliminate).
Finally, the variance of the predicted effects is calculated: Vpred <- ginv(A).

Value
A w x w matrix containing the variances and covariances of the predicted effects.

Author(s)
Chris Brien

References
Hooks, T., Marx, D., Kachman, S., and Pedersen, J. (2009). Optimality criteria for models with
random effects. Revista Colombiana de Estadistica, 32, 17-31.
Smith, A. B., D. G. Butler, C. R. Cavanagh and B. R. Cullis (2015). Multi-phase variety trials
using both composite and individual replicate samples: a model-based design approach. Journal of
Agricultural Science, 153, 1017-1029.

See Also
designAmeasures, mat.Vpred.

Examples
## Reduced example from Smith et al. (2015)
## Generate two-phase design
mill.fac <- fac.gen(list(Mrep = 2, Mday = 2, Mord = 3))
field.lay <- fac.gen(list(Frep = 2, Fplot = 4))
field.lay$Variety <- factor(c("D","E","Y","W","G","D","E","M"),
levels = c("Y","W","G","M","D","E"))
start.design <- cbind(mill.fac, field.lay[c(3,4,5,8,1,7,3,4,5,8,6,2),])
rownames(start.design) <- NULL

## Set gammas
terms <- c("Variety", "Frep", "Frep:Fplot", "Mrep", "Mrep:Mday", "Mrep:Mday:Mord")
gammas <- c(1, 0.1, 0.2, 0.3, 0.2, 1)
names(gammas) <- terms

## Specify matrices to calculate the variance matrix of the predicted fixed Variety effects
W <- model.matrix(~ -1 + Variety, start.design)
Vu <- with(start.design, fac.vcmat(Mrep, gammas["Mrep"]) +
fac.vcmat(fac.combine(list(Mrep,Mday)), gammas["Mrep:Mday"]) +
fac.vcmat(Frep, gammas["Frep"]) +
fac.vcmat(fac.combine(list(Frep,Fplot)), gammas["Frep:Fplot"]))
R <- diag(1, nrow(start.design))

## Calculate variance matrix


Vp <- mat.Vpredicts(target = W, random=Vu, R=R)
McIntyreTMV.dat 83

## Calculate the variance matrix of the predicted random Variety effects using formulae
Vp <- mat.Vpredicts(target = ~ -1 + Variety, Gt = 1,
fixed = ~ 1,
random = ~ -1 + Mrep/Mday + Frep/Fplot,
G = as.list(gammas[c(4,5,2,3)]),
R = R, design = start.design)
designAmeasures(Vp)

## Calculate the variance matrix of the predicted fixed Variety effects,


## elminating the grand mean
n <- nrow(start.design)
Vp.reduc <- mat.Vpredicts(target = ~ -1 + Variety,
random = ~ -1 + Mrep/Mday + Frep/Fplot,
G = as.list(gammas[c(4,5,2,3)]),
eliminate = projector(matrix(1, nrow = n, ncol = n)/n),
design = start.design)
designAmeasures(Vp.reduc)

McIntyreTMV.dat The design and data from McIntyre’s (1955) two-phase experiment

Description
McIntyre (1955) reports an investigation of the effect of four light intensities on the synthesis of
tobacco mosaic virus in leaves of tobacco Nicotiana tabacum var. Hickory Pryor. It is a two-phase
experiment: the first phase is a treatment phase, in which the four light treatments are randomized
to the tobacco leaves, and the second phase is an assay phase, in which the tobacco leaves are
randomized to the half-leaves of assay plants. For more details see the vignette daeDesignNotes.pdf.

Usage
data(McIntyreTMV.dat)

Format
A data.frame containing 196 observations of 4 variables.

Source
McIntyre, G. A. (1955) Design and Analysis of Two Phase Experiments. Biometrics, 11, 324–334.

meanop computes the projection matrix that produces means

Description
Replaced by fac.meanop.
84 mpone

mpone Converts the first two levels of a factor into the numeric values -1 and
+1

Description

Converts the first two levels of a factor into the numeric values -1 and +1.

Usage

mpone(factor)

Arguments

factor The factor to be converted.

Value

A numeric vector.

Warning

If the factor has more than two levels they will be coerced to numeric values.

Author(s)

Chris Brien

See Also

mpone in package dae, factor, relevel.

Examples
## generate all combinations of two two-level factors
mp <- c("-", "+")
Frf3.trt <- fac.gen(list(A = mp, B = mp))

## add factor C, whose levels are the products of the levles of A and B
Frf3.trt$C <- factor(mpone(Frf3.trt$A)*mpone(Frf3.trt$B), labels = mp)
no.reps 85

no.reps Computes the number of replicates for an experiment

Description
Computes the number of pure replicates required in an experiment to achieve a specified power.

Usage
no.reps(multiple=1., df.num=1.,
df.denom=expression((df.num + 1.) * (r - 1.)), delta=1.,
sigma=1., alpha=0.05, power=0.8, tol=0.1, print=FALSE)

Arguments
multiple The multiplier, m, which when multiplied by the number of pure replicates of a
treatment, r, gives the number of observations rm used in computing means for
some, not necessarily proper, subset of the treatment factors; m is the replica-
tion arising from other treatment factors. However, for single treatment factor
experiments the subset can only be the treatment factor and m = 1.
df.num The degrees of freedom of the numerator of the F for testing the term involving
the treatment factor subset.
df.denom The degrees of freedom of the denominator of the F for testing the term involv-
ing the treatment factor subset.
delta The true difference between a pair of means for some, not necessarily proper,
subset of the treatment factors.
sigma The population standard deviation.
alpha The significance level to be used.
power The minimum power to be achieved.
tol The maximum difference tolerated between the power required and the power
computed in determining the number of replicates.
print TRUE or FALSE to have or not have a table of power calculation details printed
out.

Value
A list containing nreps, a single numeric value containing the computed number of pure repli-
cates, and power, a single numeric value containing the power for the computed number of pure
replicates.

Author(s)
Chris Brien
86 Oats.dat

See Also

power.exp, detect.diff in package dae.

Examples
## Compute the number of replicates (blocks) required for a randomized
## complete block design with four treatments.
no.reps(multiple = 1, df.num = 3,
df.denom = expression(df.num * (r - 1)), delta = 5,
sigma = sqrt(20), print = TRUE)

Oats.dat Data for an experiment to investigate nitrogen response of 3 oats va-


rieties

Description

Yates (1937) describes a split-plot experiment that investigates the effects of three varieties of oats
and four levels of Nitrogen fertilizer. The varieties are assigned to the main plots using a randomized
complete block design with 6 blocks and the nitrogen levels are randomly assigned to the subplots
in each main plot.
The columns in the data frame are: Blocks, Wplots, Subplots, Variety, Nitrogen, xNitrogen, Yield.
The column xNitrogen is a numeric version of the factor Nitrogen. The response variable is Yield.

Usage

data(Oats.dat)

Format

A data.frame containing 72 observations of 7 variables.

Author(s)

Chris Brien

Source

Yates, F. (1937). The Design and Analysis of Factorial Experiments. Imperial Bureau of Soil
Science, Technical Communication, 35, 1-95.
p2canon.object 87

p2canon.object Description of a p2canon object

Description

An object of class p2canon that contains information derived from two formulae using projs.2canon.

Value

A list of class p2canon. It has two components: decomp and aliasing. The decomp component
iscomposed as follows:

• It has a component for each component of Q1.


• Each of the components for Q1 is a list; each of these lists has one component for each of
Q2 and a component Pres.
• Each of the Q2 components is a list of three components: pairwise, adjusted and Qproj.
These components are based on an eigenalysis of the relationship between the projectors for
the parent Q1 and Q2 components.
1. Each pairwise component is based on the nonzero canonical efficiency factors for the
joint decomposition of the two parent projectors (see proj2.eigen).
2. An adjusted component is based on the nonzero canonical efficiency factors for the joint
decomposition of the Q1 component and the Q2 component, the latter adjusted for all Q2
projectors that have occured previously in the list.
3. The Qproj component is the adjusted projector for the parent Q2 component.
• The pairwise and adjusted components have the following components: efficiencies,
aefficiency, mefficiency, sefficiency, eefficiency, xefficiency, order and dforthog
– for details see efficiency.criteria.

The aliasing component is a data.frame decribing the aliasing between terms corresponding to
two Q2 projectors when estimated in subspaces corresponding to a Q1 projector.

Author(s)

Chris Brien

See Also

projs.2canon, designAnatomy, pcanon.object.


88 pcanon.object

pcanon.object Description of a pcanon object

Description

An object of class pcanon that contains information derived from several formulae using designAnatomy.

Value

A list of class pcanon that has four components: (i) Q, (ii) terms, (iii) sources, (iv) marginality,
and (v) aliasing. Each component is a list with as many components as there are formulae in
the formulae list supplied to designAnatomy.
The Q list is made up of the following components:

1. The first component is the joint decomposition of two structures derived from the first two
formulae, being the p2canon.object produced by projs.2canon.
2. Then there is a component for each further formulae; it contains the p2canon.object obtained
by applying projs.2canon to the structure for a formula and the already established joint
decomposition of the structures for the previous formulae in the formulae.
3. The last component contains the the list of the projectors that give the combined canonical
decomposition derived from all of the formulae.

The terms, sources, marginalty and aliasing lists have a component for each formula in the
formulae argument to designAnatomy, Each component of the terms and sources lists has a
character vector containing the terms or sources derived from its formula. For the marginality
component, each component is the marginality matrix for the terms derived from its formula. For
the aliasing component, each component is the aliasing data.frame for the source derived from
its formula. The components of these four lists are produced by pstructure.formula and are
copied from the pstructure.object for the formula. The names of the components of these four
lists will be the names of the components in the formulae list.
The object has the attribute labels, which is set to "terms" or "sources" according to which of
these were used to label the projectors when the object was created.

Author(s)

Chris Brien

See Also

designAnatomy, p2canon.object.
power.exp 89

power.exp Computes the power for an experiment

Description
Computes the power for an experiment.

Usage
power.exp(rm=5., df.num=1., df.denom=10., delta=1., sigma=1.,
alpha=0.05, print=FALSE)

Arguments
rm The number of observations used in computing a mean.
df.num The degrees of freedom of the numerator of the F for testing the term involving
the means.
df.denom The degrees of freedom of the denominator of the F for testing the term involv-
ing the means.
delta The true difference between a pair of means.
sigma The population standard deviation.
alpha The significance level to be used.
print TRUE or FALSE to have or not have a table of power calculation details printed
out.

Value
A single numeric value containing the computed power.

Author(s)
Chris Brien

See Also
no.reps, detect.diff in package dae.

Examples
## Compute power for a randomized complete block design with four treatments
## and five blocks.
rm <- 5
power.exp(rm = rm, df.num = 3, df.denom = 3 * (rm - 1), delta = 5,
sigma = sqrt(20),print = TRUE)
90 print.aliasing

print.aliasing Print an aliasing data.frame

Description
Prints an aliasing data.frame.

Usage
## S3 method for class 'aliasing'
print(x, which.criteria = c("aefficiency","eefficiency","order"), ...)

Arguments
x The data.frame that is also of class aliasing and is to be printed.
which.criteria A character vector nominating the efficiency criteria to be included in the sum-
mary of aliasing between terms. It can be none, all or some combination
of aefficiency, mefficiency, sefficiency, eefficiency, xefficiency,
order and dforthog – for details see efficiency.criteria. If none, no cri-
teria are printed.
... Further arguments passed to the print method for data.frame.

Author(s)
Chris Brien

See Also
print, print.default, show.

Examples
## Generate a data.frame with 3 factors length 12
pseudo.lay <- data.frame(pl = factor(1:12),
ab = factor(rep(1:4, times=3)),
a = factor(rep(1:2, times=6)))

## create a pstructure object


trt.struct <- pstructure(~ ab+a, data = pseudo.lay)

## print the object either using the Method function, the generic function or show
print.aliasing(trt.struct$aliasing)
print(trt.struct$aliasing, which.criteria = "none")
trt.struct$aliasing
print.projector 91

print.projector Print projectors

Description

Print an object of class "projector", displaying the matrix and its degrees of freedom (rank).

Usage

## S3 method for class 'projector'


print(x, ...)

Arguments

x The object of class "projector" to be printed.


... Further arguments passed to or from other methods.

Author(s)

Chris Brien

See Also

print, print.default, show.


projector for further information about this class.

Examples

## set up a 2 x 2 mean operator that takes the mean of a vector of 2 values


m <- matrix(rep(0.5,4), nrow=2)

## create an object of class projector


proj.m <- projector(m)

## print the object either using the Method function, the generic function or show
print.projector(proj.m)
print(proj.m)
proj.m
92 print.pstructure

print.pstructure Prints a pstructure.object

Description

Prints a pstructure.object, which is of class pstructure. The df, terms and sources are coerced
into a data.frame and printed; the marginality matrix is printed separately.

Usage

## S3 method for class 'pstructure'


print(x, which.criteria = c("aefficiency","eefficiency","order"), ...)

Arguments

x The pstructure.object, which is of class pstructure and is to be printed.


which.criteria A character vector nominating the efficiency criteria to be included in the sum-
mary of aliasing between terms. It can be none, all or some combination
of aefficiency, mefficiency, sefficiency, eefficiency, xefficiency,
order and dforthog – for details see efficiency.criteria. If none, no cri-
teria are printed.
... Further arguments passed to or from other methods.

Author(s)

Chris Brien

See Also

print, print.default, show.

Examples
## Generate a data.frame with 4 factors, each with three levels, in standard order
ABCD.lay <- fac.gen(list(A = 3, B = 3, C = 3, D = 3))

## create a pstructure object based on the formula ((A*B)/C)*D


ABCD.struct <- pstructure.formula(~ ((A*B)/C)*D, data =ABCD.lay)

## print the object either using the Method function, the generic function or show
print.pstructure(ABCD.struct)
print(ABCD.struct)
ABCD.struct
print.summary.p2canon 93

print.summary.p2canon Prints the values in an summary.p2canon object

Description
Prints a summary.p2canon object, which is also a data.frame, in a pretty format.

Usage
## S3 method for class 'summary.p2canon'
print(x, ...)

Arguments
x A summary.p2canon object.
... further arguments passed to print.

Value
No value is returned.

Author(s)
Chris Brien

See Also
summary.p2canon

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)

##obtain projectors using pstructure


unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
trt.struct <- pstructure(~ trt, data = PBIBD2.lay)

##obtain combined decomposition and print summary


unit.trt.p2canon <- projs.2canon(unit.struct$Q, trt.struct$Q)
summ <- summary(unit.trt.p2canon)
print(summ)
94 print.summary.pcanon

print.summary.pcanon Prints the values in an summary.pcanon object

Description
Prints a summary.pcanon object, which is also a data.frame, in a pretty format.

Usage
## S3 method for class 'summary.pcanon'
print(x, aliasing.print = TRUE, ...)

Arguments
x A summary.pcanon object.
aliasing.print A logical indicating whether the aliasing between sources is to be printed.
Ignored for legacy summary.pcanon objects resulting from versions prior to 3.0-
0 and so using projs.canon
... further arguments passed to print.

Value
No value is returned.

Author(s)
Chris Brien

See Also
summary.pcanon

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)

##obtain combined decomposition and summarize


unit.trt.canon <- designAnatomy(list(unit=~ Block/Unit, trt=~ trt),
data = PBIBD2.lay)
summ <- summary(unit.trt.canon, which = c("aeff","eeff","order"))
print(summ)
proj2.combine 95

proj2.combine Compute the projection and Residual operators for two, possibly
nonorthogonal, projectors

Description
The canonical relationship between a pair of projectors is established by decomposing the range
of Q1 into a part that pertains to Q2 and a part that is orthogonal to Q2. It also produces the
nonzero canonical efficiency factors for the joint decomposition of Q1 and Q and the corresponding
eigenvectors of Q1 (James and Wilkinson, 1971). Q1 and Q2 may be nonorthogonal.

Usage
proj2.combine(Q1, Q2)

Arguments
Q1 A symmetric projector whose range is to be decomposed.
Q2 A symmetric projector whose range in Q1 is required.

Details
The nonzero canonical efficiency factors are the nonzero eigenvalues of Q1 %*% Q2 %*% Q1 (James
and Wilkinson, 1971). An eigenvalue is regarded as zero if it is less than daeTolerance, which is
initially set to .Machine$double.eps ^ 0.5 (about 1.5E-08). The function set.daeTolerance
can be used to change daeTolerance.
The eigenvectors are the eigenvectors of Q1 corresponding to the nonzero canonical efficiency
factors. The eigenvectors for Q2 can be obtained by premultiplying those for Q1 by Q2.
Qres is computed using equation 4.10 from James and Wilkinson (1971), if the number of distinct
canonical efficiency factors is less than 10. If this fails to produce a projector or the number of
distinct canonical efficiency factors is 10 or more, equation 5.3 of Payne and Tobias (1992) is used
to obtain Qres. In this latter case, Qres = Q1 - Q1 %*% ginv(Q2 %*% Q1 %*% Q2) %*% Q1.
Qconf is obtained by subtracting Qres from Q1.

Value
A list with the following components:

1. efficiencies: a vector containing the nonzero canonical efficiency factors;


2. eigenvectors: an n x r matrix, where n is the order of the projectors and r is the number of
nonzero canonical efficiency factors; it contains the eigenvectors of Q1 corresponding to the
nonzero canonical efficiency factors.
3. Qconf: a projector onto the part of the range of Q1 with which Q2 is confounded;
4. Qres: a projector onto the part of the range of Q1 that is orthogonal to the range of Q2.
96 proj2.efficiency

Author(s)
Chris Brien

References
James, A. T. and Wilkinson, G. N. (1971) Factorization of the residual operator and canonical
decomposition of nonorthogonal factors in the analysis of variance. Biometrika, 58, 279–294.
Payne, R. W. and R. D. Tobias (1992). General balance, combination of information and the analysis
of covariance. Scandinavian Journal of Statistics, 19, 3–23.

See Also
proj2.eigen, proj2.efficiency, decomp.relate in package dae.
projector for further information about this class.

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)

## obtain sets of projectors


unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
trt.struct <- pstructure(~ trt, data = PBIBD2.lay)

## obtain the projection operators for the interblock analysis


PBIBD2.Bops <- proj2.combine(unit.struct$Q[["Unit[Block]"]], trt.struct$Q[["trt"]])
Q.B.T <- PBIBD2.Bops$Qconf
Q.B.res <- PBIBD2.Bops$Qres

## demonstrate their orthogonality


is.allzero(Q.B.T %*% Q.B.res)

proj2.efficiency Computes the canonical efficiency factors for the joint decomposition
of two projectors

Description
Computes the canonical efficiency factors for the joint decomposition of two projectors (James and
Wilkinson, 1971).
proj2.efficiency 97

Usage
proj2.efficiency(Q1, Q2)

Arguments
Q1 An object of class "projector".
Q2 An object of class "projector".

Details
The nonzero canonical efficiency factors are the nonzero eigenvalues of Q1 %*% Q2 %*% Q1
(James and Wilkinson, 1971). An eigenvalue is regarded as zero if it is less than daeTolerance,
which is initially set to .Machine$double.eps ^ 0.5 (about 1.5E-08). The function set.daeTolerance
can be used to change daeTolerance.

Value
A vector containing the nonzero canonical efficiency factors.

Author(s)
Chris Brien

References
James, A. T. and Wilkinson, G. N. (1971) Factorization of the residual operator and canonical
decomposition of nonorthogonal factors in the analysis of variance. Biometrika, 58, 279-294.

See Also
efficiency.criteria, proj2.eigen, proj2.combine in package dae, eigen.
projector for further information about this class.

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)

## obtain sets of projectors


unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
trt.struct <- pstructure(~ trt, data = PBIBD2.lay)

## save intrablock efficiencies


eff.intra <- proj2.efficiency(unit.struct$Q[["Block"]], trt.struct$Q[["trt"]])
98 proj2.eigen

proj2.eigen Canonical efficiency factors and eigenvectors in joint decomposition


of two projectors

Description
Computes the canonical efficiency factors for the joint decomposition of two projectors and the
eigenvectors corresponding to the first projector (James and Wilkinson, 1971).

Usage
proj2.eigen(Q1, Q2)

Arguments
Q1 An object of class "projector".
Q2 An object of class "projector".

Details
The component efficiencies is a vector containing the nonzero canonical efficiency factors for the
joint decomposition of the two projectors. The nonzero canonical efficiency factors are the nonzero
eigenvalues of Q1 %*% Q2 %*% Q1 (James and Wilkinson, 1971). An eigenvalue is regarded as
zero if it is less than daeTolerance, which is initially set to .Machine$double.eps ^ 0.5 (about
1.5E-08). The function set.daeTolerance can be used to change daeTolerance.
The component eigenvectors is an n x r matrix, where n is the order of the projectors and r is the
number of nonzero canonical efficiency factors; it contains the eigenvectors of Q1 corresponding to
the nonzero canonical efficiency factors. The eigenvectors for Q2 can be obtained by premultiplying
those for Q1 by Q2.

Value
A list with components efficiencies and eigenvectors.

Author(s)
Chris Brien

References
James, A. T. and Wilkinson, G. N. (1971) Factorization of the residual operator and canonical
decomposition of nonorthogonal factors in the analysis of variance. Biometrika, 58, 279-294.

See Also
proj2.efficiency, proj2.combine in package dae, eigen.
projector for further information about this class.
projector 99

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)

## obtain sets of projectors


unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
trt.struct <- pstructure(~ trt, data = PBIBD2.lay)

## obtain intra- and inter-block decompositions


decomp.inter <- proj2.eigen(unit.struct$Q[["Block"]], trt.struct$Q[["trt"]])
decomp.intra <- proj2.eigen(unit.struct$Q[["Unit[Block]"]], trt.struct$Q[["trt"]])

#extract intrablock efficiencies


decomp.intra$efficiencies

projector Create projectors

Description

The class "projector" is the subclass of the class "matrix" in which matrices are square, symmet-
ric and idempotent.
The function projector tests whether a matrix satisfies these criteria and if it does creates a
"projector" object, computing the projector’s degrees of freedom and adding them to the object.

Usage

projector(Q)

Arguments

Q The matrix to be made into a projector.

Details

In checking that the matrix is square, symmetric and idempotent, the equality of the matrix with
either its transpose or square is tested. In this, a difference in elements is considered to be zero if it
is less than daeTolerance, which is initially set to .Machine$double.eps ^ 0.5 (about 1.5E-08).
The function set.daeTolerance can be used to change daeTolerance.
100 projector-class

Value
An object of Class "projector" that consists of a square, summetric, idempotent matrix and de-
grees of freedom (rank) of the matrix.

Author(s)
Chris Brien

See Also
degfree, correct.degfree in package dae.
projector for further information about this class.

Examples
## set up a 2 x 2 mean operator that takes the mean of a vector of 2 values
m <- matrix(rep(0.5,4), nrow=2)

## create an object of class projector


proj.m <- projector(m)

## check that it is a valid projector


is.projector(proj.m)

projector-class Class projector

Description
The class "projector" is the subclass of matrices that are square, symmetric and idempotent.
is.projector is the membership function for this class.
degfree is the extractor function for the degrees of freedom and degfree<- is the replacement
function.
correct.degfree checks whether the stored degrees of freedom are correct.

Objects from the Class


An object of class "projector" consists of a square, symmetric, idempotent matrix along with its
degrees of freedom (rank).
Objects can be created by calls of the form new("projector", data, nrow, ncol, byrow, dimnames, ...).
However, this does not add the degrees of freedom to the object. These can be added using the re-
placement function degfree<-. Alternatively, the function projector creates the new object from
a matrix, adding its degrees of freedom at the same time.
projector-class 101

Slots

.Data: Object of class "matrix"


degfree: Object of class "integer"

Extends

Class "matrix", from data part. Class "array", by class "matrix", distance 2. Class "structure",
by class "matrix", distance 3. Class "vector", by class "matrix", distance 4, with explicit coerce.

Methods

coerce signature(from = "projector", to = "matrix")


print signature(x = "projector")
show signature(object = "projector")

Author(s)

Chris Brien

See Also

projector, degfree, correct.degfree in package dae.

Examples

showClass("projector")

## set up a 2 x 2 mean operator that takes the mean of a vector of 2 values


m <- matrix(rep(0.5,4), nrow=2)

## create an object of class projector


proj.m <- projector(m)

## check that it is a valid projector


is.projector(proj.m)

## create a projector based on the matrix m


proj.m <- new("projector", data=m)

## add its degrees of freedom and print the projector


degfree(proj.m) <- proj.m
102 projs.2canon

projs.2canon A canonical analysis of the relationships between two sets of projec-


tors

Description
Computes the canonical efficiency factors for the joint decomposition of two structures or sets of
mutually orthogonally projectors (Brien and Bailey, 2009), orthogonalizing projectors in the Q2
list to those earlier in the list of projectors with which they are partially aliased. The results can
be summarized in the form of a skeleton ANOVA table.

Usage
projs.2canon(Q1, Q2)

Arguments
Q1 A list whose components are objects of class "projector".
Q2 A list whose components are objectsof class "projector".

Details
Two loops, one nested within the other, are performed. The first cycles over the components
of Q1 and the nested loop cycles over the components of Q2. The joint decomposition of the
two projectors in each cycle, one from Q1 (say Q1[[i]]) and the other from Q2 (say Q2[[j]])
is obtained using proj2.combine. In particular, the nonzero canonical efficiency factors for the
joint decomposition of the two projectors is obtained. The nonzero canonical efficiency factors
are the nonzero eigenvalues of Q1[[i]] %*% Q2[[j]] %*% Q1[[i]] (James and Wilkinson,
1971). An eigenvalue is regarded as zero if it is less than daeTolerance, which is initially set to
.Machine$double.eps ^ 0.5 (about 1.5E-08). The function set.daeTolerance can be used to
change daeTolerance.
However, a warning occurs if any pair of Q2 projectors (say Q2[[j]] and Q2[[k]]) do not have
adjusted orthgonality with respect to any Q1 projector (say Q1[[i]]), because they are partially
aliased. That is, if Q2[[j]] %*% Q1[[i]] %*% Q2[[k]] is nonzero for any pair of different Q2
projectors and any Q1 projector. When it is nonzero, the projector for the later term in the list of
projectors is orthogonalized to the projector that is earlier in the list. A list o such projectors is
returned in the aliasing component of the p2canon.object.

Value
A p2canon.object.

Author(s)
Chris Brien
projs.combine.p2canon 103

References
Brien, C. J. and R. A. Bailey (2009). Decomposition tables for multitiered experiments. I. A chain
of randomizations. The Annals of Statistics, 36, 4184 - 4213.
James, A. T. and Wilkinson, G. N. (1971) Factorization of the residual operator and canonical
decomposition of nonorthogonal factors in the analysis of variance. Biometrika, 58, 279-294.

See Also
summary.p2canon, efficiencies.p2canon, projs.combine.p2canon, pstructure ,
proj2.efficiency, proj2.combine, proj2.eigen, efficiency.criteria in package dae, eigen.
projector for further information about this class.

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)

##obtain projectors using pstructure


unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
trt.struct <- pstructure(~ trt, data = PBIBD2.lay)

##obtain combined decomposition and summarize


unit.trt.p2canon <- projs.2canon(unit.struct$Q, trt.struct$Q)
summary(unit.trt.p2canon)

projs.combine.p2canon Extract, from a p2canon object, the projectors that give the combined
canonical decomposition

Description
Extracts, from a p2canon object obtained using projs.2canon, the projectors that give the com-
bined canonical decomposition of two sets of projectors (Brien and Bailey, 2009).

Usage
projs.combine.p2canon(object)

Arguments
object A list of class p2canon produced by projs.2canon.
104 pstructure.formula

Value
A list, each of whose components is a projector in the decomposition.

Author(s)
Chris Brien

References
Brien, C. J. and R. A. Bailey (2009). Decomposition tables for multitiered experiments. I. A chain
of randomizations. The Annals of Statistics, 36, 4184 - 4213.

See Also
projs.2canon, proj2.eigen, proj2.combine in package dae.
projector for further information about this class.

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)

## obtain sets of projectors


unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
trt.struct <- pstructure(~ trt, data = PBIBD2.lay)

##obtain combined decomposition


unit.trt.p2canon <- projs.2canon(unit.struct$Q, trt.struct$Q)
UcombineT <- projs.combine.p2canon(unit.trt.p2canon)

pstructure.formula Takes a formula and constructs a pstructure.object that includes


the orthogonalized projectors for the terms in a formula

Description
Constructs a pstructure.object that includes a set of mutually orthogonal projectors, one for
each term in the formula. These are used to specify a structure, or an orthogonal decomposition of
the data space. There are three methods available for orthogonalizing the projectors corresponding
to the terms in the formula: differencing, eigenmethods or the default hybrid method.
It is possible to use this function to find out what sources are associated with the terms in a model
and to determine the marginality between terms in the model. The marginality matrix can be saved.
pstructure.formula 105

Usage
## S3 method for class 'formula'
pstructure(formula, keep.order = TRUE, grandMean = FALSE,
orthogonalize = "hybrid", labels = "sources",
marginality = NULL, check.marginality = TRUE,
omit.projectors = FALSE,
which.criteria = c("aefficiency","eefficiency","order"),
aliasing.print = TRUE, data = NULL, ...)

Arguments
formula An object of class formula from which the terms will be obtained.
keep.order A logical indicating whether the terms should keep their position in the ex-
panded formula projector, or reordered so that main effects precede two-factor
interactions, which precede three-factor interactions and so on.
grandMean A logical indicating whether the projector for the grand mean is to be included
in the set produced.
orthogonalize A character vector indicating the method for orthogonalizing a projector to
those for terms that occurred previously in the formula. Three options are avail-
able: hybrid; differencing; eigenmethods. The hybrid option is the most
general and uses the relationships between the projection operators for the terms
in the formula to decide which projectors to substract and which to orthogo-
nalize using eigenmethods. The differencing option subtracts, from the cur-
rent projector, those previously orthogonalized projectors for terms whose
factors are a subset of the current projector’s factors. The eigemethods op-
tion recursively orthogonalizes the projectors using an eigenanalysis of each
projector with previously orthogonalized projectors.
labels A character nominating the type of labels to be used in labelling the projectors,
and which will be used also in the output tables, such the tables of the aliasing
in the structure. The two alternatives are terms and sources. Terms have all
factors/variables in it separated by colons (:). Sources have factors/variables
in them that represent interactions separated by hashes (#); if some factors are
nested within others, the nesting factors are surrounded by square brackets ([
and ]) and separated by colons (:). If some generalized, or combined, factors
have no marginal terms, the constituent factors are separated by colons (:) and
if they interact with other factors in the source they will be parenthesized.
marginality A square matrix that can be used to supply the marginality matrix when it is
desired to overwrite the calculated marginality matrix or when it is not being
calculated. It should consist of zeroes and ones that gives the marginalites of the
terms in the formula. It must have the row and column names set to the terms
from the expanded formula, including being in the same order as these terms.
The entry in the ith row and jth column will be one if the ith term is marginal
to the jth term i.e. the column space of the ith term is a subspace of that for the
jth term and so the source for the jth term is to be made orthogonal to that for
the ith term. Otherwise, the entries are zero. A row and column should not be
included for the grand mean even if grandMean is TRUE.
106 pstructure.formula

check.marginality
A logical indicating whether the marginality matrix, when it is supplied, is to
be checked against that computed by pstructure.formula. It is ignored when
orthogonalize is set to eigenmethods.
omit.projectors
A logical, which, if TRUE, results in the projectors in the Q of the pstructure.object
being replaced by their degrees of freedom. These will be the degrees of free-
dom of the sources. This option is included a device for saving storage when the
projectors are not required for further analysis.
which.criteria A character vector nominating the efficiency criteria to be included in the sum-
mary of aliasing between terms. It can be none, all or some combination
of aefficiency, mefficiency, sefficiency, eefficiency, xefficiency,
order and dforthog – for details see efficiency.criteria. If none, no sum-
mary is printed.
aliasing.print A logical indicating whether the aliasing between sources within the structure
is to be printed.
data A data frame contains the values of the factors and variables that occur in
formula.
... further arguments passed to terms.

Details
Firstly, the primary projector X(X0 X)− X0 , where X is the design matrix for the term, is calcu-
lated for each term. Then each projector is made orthogonal to terms aliased with it, either by
differencing, eigenmethods or the default hybrid method.
Differencing relies on comparing the factors involved in two terms, one previous to the other,
to identify whether to subtract the orthogonalized projector for the previous term from the pri-
mary projector of the other. It does so if factors/variables for the previous term are a subset of
the factors/variablesfor for the other term. This relies on ensuring that all projectors whose fac-
tors/variables are a subset of the current projector occur before it in the expanded formula. It is
checked that the set of matrices are mutually orthogonal. If they are not then a warning is given. It
may happen that differencing does not produce a projector, in which case eigenmethods must be
used.
Eigenmethods forces each projector to be orthogonal to all terms previous to it in the expanded
formula. It uses equation 4.10 of James and Wilkinson (1971), which involves calculating the
canonical efficiency factors for pairs of primary projectors. It produces a table of efficiency criteria
for partially aliased terms. Again, the order of terms is crucial. This method has the disadvantage
that the marginality of terms is not determined and so sources names are set to be the same as the
term names.
The hybrid method is the most general and uses the relationships between the projection operators
for the terms in the formula to decide which projectors to subtract and which to orthogonalize using
eigenmethods. If Qi and Qj are two projectors for two different terms, with i < j, then

1. if Qj Qi 6= 0 then have to orthogonalize Qj to Qi .


2. if Qj Qi = Qj then, if Qi = Qj , they are equal and Qj will be removed from the list of
terms; otherwise they are marginal and Qi is subtracted from Qj .
pstructure.formula 107

3. if have to orthogonalize and Qj Qi = Qi then Qj is aliased with previous terms and will be
removed from the list of terms; otherwise Qi is partially aliased with Qj and Qj is orthogo-
nalized to Qi using eigenmethods.

Again, the order of terms is crucial in this process.

Value
A pstructure.object.

Author(s)
Chris Brien

References
James, A. T. and Wilkinson, G. N. (1971) Factorization of the residual operator and canonical
decomposition of nonorthogonal factors in the analysis of variance. Biometrika, 58, 279-294.

See Also
proj2.efficiency, proj2.combine, proj2.eigen, projs.2canon in package dae,
eigen.
projector for further information about this class.

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)
## manually obtain projectors for units
Q.G <- projector(matrix(1, nrow=24, ncol=24)/24)
Q.B <- projector(fac.meanop(PBIBD2.lay$Block) - Q.G)
Q.BP <- projector(diag(1, nrow=24) - Q.B - Q.G)

## manually obtain projector for trt


Q.T <- projector(fac.meanop(PBIBD2.lay$trt) - Q.G)

##compute intrablock efficiency criteria


effic <- proj2.efficiency(Q.BP, Q.T)
effic
efficiency.criteria(effic)

##obtain projectors using pstructure.formula


unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
trt.struct <- pstructure(~ trt, data = PBIBD2.lay)
108 pstructure.object

##obtain combined decomposition and summarize


unit.trt.p2canon <- projs.2canon(unit.struct$Q, trt.struct$Q)
summary(unit.trt.p2canon, which = c("aeff","eeff","order"))

pstructure.object Description of a pstructure object

Description
An object of class pstructure that contains information derived from a formula using pstructure.formula.
It also inherits from class list.

Value
A list of class pstructure with the following components:

1. Q: a list with a component of class projector, being the orthogonalized projector for each
non-aliased term/source in the formula; if grandMean is TRUE in the call to pstructure.formula
then it also includes the projector for it;
2. terms: a character vector with the non-aliased term names; if grandMean is TRUE in the call
to pstructure.formula then the first term will be "Mean";
3. sources: a character vector with the non-aliased source names;
4. marginality: a matrix of zeroes and ones with the same number of rows and columns as
number of non-aliased terms, excluding the term for the grand mean even when grandMean is
TRUE; the row names and column names are the elements terms, excluding "Mean";
the entry in the ith row and jth column will be one if the ith term is marginal to the jth term
i.e. the column space of the ith term is a subspace of that for the jth term and so the source for
the jth term will have been made orthogonal to that for the ith term; otherwise, the entries are
zero.
5. aliasing: a data.frame containing the information about the (partial) aliasing between the
sources in the formula. The columns are:
• Source: the source names, or associated term name, for those that are (partially) aliased
with previous sources;
• df: the remaining degrees of freedom for the source;
• Alias: the source with which the current entry is (partially) aliased;
• efficiency criteria: a set of columns for the complete set of criteria calculated by efficiency.criteria.
The information provided depends on the setting of orthogonalize. All the information is
provided for the "hybrid" option. For the option "differencing", no efficiency criteria are
included and either the terms/sources of the Alias are set to "unknown" and the df are set
to NA when these are unknown. For the option "eigenmethods", the previous terms/sources
cannot be identified and so all values of Alias are set to NA. If there is no (partial) aliasing
then the component is set to NULL.

The object has the attribute labels, which is set to "terms" or "sources" according to which of
these label the projectors.
qqyeffects 109

Author(s)
Chris Brien

See Also
pstructure.formula and, for further information about the projector classs, projector.

qqyeffects Half or full normal plot of Yates effects

Description
Produces a half or full normal plot of the Yates effects from a 2k factorial experiment.

Usage
qqyeffects(aov.obj, error.term="Within", data=NULL, pch=16,
full=FALSE, ...)

Arguments
aov.obj An aov object or aovlistobject created from a call to aov.
error.term The term from the Error function from which the Yates effects are estimated.
Only required when Error used in call to aov.
data A data.frame in which the variables specified in the aov.obj will be found. If
missing, the variables are searched for in the standard way.
pch The number of a plotting symbol to be drawn when plotting points (use help(points)
for details).
full whether a full or half normal plot is to be produced. The default is for a half-
normal plot; full=TRUE produces a full normal plot.
... Further graphical parameters may be specified (use help(par) for possibilities.

Details
A half or full normal plot of the Yates effects is produced. You will be able to interactively select
effects to be labelled (click reasonably close to the point and on the side where you want the label
placed). Right click on the graph and select Stop when you have finished labelling effects. A
regression line fitted to the unselected effects and constrained to go through the origin is plotted.
Also, a list of the labelled effects, if any, are printed to standard ouptut.

Value
Returns, invisibly, a list with components x and y, giving coordinates of the plotted points.

Author(s)
Chris Brien
110 resid.errors

See Also
yates.effects in package dae, qqnorm.

Examples
## analysis of 2^4 factorial experiment from Table 10.6 of Box, Hunter and
## Hunter (1978) Statistics for Experimenters. New York, Wiley.
## use ?Fac4Proc.dat for data set details
data(Fac4Proc.dat)
Fac4Proc.aov <- aov(Conv ~ Catal * Temp * Press * Conc + Error(Runs),
Fac4Proc.dat)
qqyeffects(Fac4Proc.aov, error.term="Runs", data=Fac4Proc.dat)

resid.errors Extract the residuals for a fitted model

Description
An alias for the generic function residuals. When it is available, the method residuals.aovlist
extracts residuals, which is provided in the package dae to cover aovlist objects.

Usage
resid.errors(...)

Arguments
... Arguments passed to residuals.aovlist.

Value
A numeric vector containing the residuals.

Note
See residuals.aovlist for specific information about the residuals when an Error function is
used in the call to the aov function.

Author(s)
Chris Brien

See Also
fitted.errors, residuals.aovlist, tukey.1df in package dae.
residuals.aovlist 111

Examples
## set up data frame for randomized complete block design in Table 4.4 from
## Box, Hunter and Hunter (2005) Statistics for Experimenters. 2nd edn
## New York, Wiley.
RCBDPen.dat <- fac.gen(list(Blend=5, Flask=4))
RCBDPen.dat$Treat <- factor(rep(c("A","B","C","D"), times=5))
RCBDPen.dat$Yield <- c(89,88,97,94,84,77,92,79,81,87,87,
85,87,92,89,84,79,81,80,88)

## perform the analysis of variance


RCBDPen.aov <- aov(Yield ~ Blend + Treat + Error(Blend/Flask), RCBDPen.dat)
summary(RCBDPen.aov)

## two equivalent ways of extracting the residuals


res <- residuals.aovlist(RCBDPen.aov)
res <- residuals(RCBDPen.aov, error.term = "Blend:Flask")
res <- resid.errors(RCBDPen.aov)

residuals.aovlist Extract the residuals from an aovlist object

Description
Extracts the residuals from error.term or, if error.term is not specified, the last error.term in
the analysis. It is a method for the generic function residuals.

Usage
## S3 method for class 'aovlist'
residuals(object, error.term=NULL, ...)

Arguments
object An aovlist object created from a call to aov.
error.term The term from the Error function for which the residuals are to be extracted. If
error.term is NULL the residuals are extracted from the last Error term.
... Further arguments passed to or from other methods.

Value
A numeric vector containing the residuals.

Author(s)
Chris Brien

See Also
fitted.errors, resid.errors, tukey.1df in package dae.
112 rmvnorm

Examples
## set up data frame for randomized complete block design in Table 4.4 from
## Box, Hunter and Hunter (2005) Statistics for Experimenters. 2nd edn
## New York, Wiley.
RCBDPen.dat <- fac.gen(list(Blend=5, Flask=4))
RCBDPen.dat$Treat <- factor(rep(c("A","B","C","D"), times=5))
RCBDPen.dat$Yield <- c(89,88,97,94,84,77,92,79,81,87,87,
85,87,92,89,84,79,81,80,88)

## perform the analysis of variance


RCBDPen.aov <- aov(Yield ~ Blend + Treat + Error(Blend/Flask), RCBDPen.dat)
summary(RCBDPen.aov)

## two equivalent ways of extracting the residuals


res <- residuals.aovlist(RCBDPen.aov)
res <- residuals(RCBDPen.aov, error.term = "Blend:Flask")

rmvnorm generates a vector of random values from a multivariate normal dis-


tribution

Description
Generates a vector of random values from an n-dimensional multivariate normal distribution whose
mean is given by the n-vector mean and variance by the n x n symmetric matrix V. It uses the method
described by Ripley (1987, p.98)

Usage
rmvnorm(mean, V, method = 'eigenanalysis')

Arguments
mean The mean vector of the multivariate normal distribution from which the random
values are to be generated.
V The variance matrix of the multivariate normal distribution from which the ran-
dom values are to be generated.
method The method used to decompose the variance matrix in producing a a matrix
to transform the iid standard normal values. The two methods available are
'eigenanalysis' and 'choleski', where only the first letter of each option is
obligatory. The default method is eigenanalysis, which is slower but is likely to
be more stable than Choleski decomposition.

Details
The method is: a) uses either the eigenvalue or Choleski decomposition of the variance matrix, V,
to form the matrix that transforms an iid vector of values to a vector with variance V; b) generate
a vector of length equal to mean of standard normal values; c) premultiply the vector of standard
normal values by the transpose of the upper triangular factor and, to the result, add mean.
Sensory3Phase.dat 113

Value
A vector of length n, equal to the length of mean.

Author(s)
Chris Brien

References
Ripley, B. D. (1987) Stochastic simulation. Wiley, New York.

See Also
fac.ar1mat, fac.vcmat, in package dae, rnorm, and chol.

Examples
## set up a two-level factor and a three-level factor, both of length 12
A <- factor(rep(1:2, each=6))
B <- factor(rep(1:3, each=2, times=2))

## generate random values from a multivariate normal for which


#the mean is 20 for all variables and
#the variance matrix has random effects for factor A, ar1 pattern for B and
#residual random variation
mean <- rep(20, 12)
V <- fac.vcmat(A, 5) + fac.ar1mat(B, 0.6) + 2*mat.I(12)
y <- rmvnorm(mean, V)

Sensory3Phase.dat Data for the three-phase sensory evaluation experiment in Brien, C.J.
and Payne, R.W. (1999)

Description
The data is from an experiment involved two phases. In the field phase a viticultural experiment
was conducted to investigate the differences between 4 types of trellising and 2 methods of pruning.
The design was a split-plot design in which the trellis types were assigned to the main plots using
two adjacent Youden squares of 3 rows and 4 columns. Each main plot was split into two subplots
(or halfplots) and the methods of pruning assigned at random independently to the two halfplots in
each main plot. The produce of each halfplot was made into a wine so that there were 24 wines
altogether.
The second phase was an evaluation phase in which the produce from the halplots was evaluated by
6 judges all of whom took part in 24 sittings. In the first 12 sittings the judges evaluated the wines
made from the halfplots of one square; the final 12 sittings were to evaluate the wines from the other
square. At each sitting, each judge assessed two glasses of wine from each of the halplots of one of
the main plots. The main plots allocated to the judges at each sitting were determined as follows.
For the allocation of rows, each occasion was subdivided into 3 intervals of 4 consecutive sittings.
114 set.daeTolerance

During each interval, each judge examined plots from one particular row, these being determined
using two 3x3 Latin squares for each occasion, one for judges 1-3 and the other for judges 4-6.
At each sitting judges 1-3 examined wines from one particular column and judges 4-6 examined
wines from another column. The columns were randomized to the 2 sets of judges x 3 intervals x 4
sittings using duplicates of a balanced incomplete block design for v=4 and k=2 that were latinized.
This balanced incomplete block design consists of three sets of 2 blocks, each set containing the 4
"treatments". For each interval, a different set of 2 blocks was taken and each block assigned to two
sittings, but with the columns within the block placed in reverse order in one sitting compared to
the other sitting. Thus, in each interval, a judge would evaluate a wine from each of the 4 columns.
The data.frame contains the following factors, in the order give: Occasion, Judges, Interval, Sit-
tings, Position, Squares, Rows, Columns, Halfplot, Trellis, Method. They are followed by the
simulated response variable Score.
The scores are ordered so that the factors Occasion, Judges, Interval, Sittings and Position are in
standard order; the remaining factors are in randomized order.
See also the vignette daeDesignNotes.pdf.

Usage
data(Sensory3Phase.dat)
data(Sensory3PhaseShort.dat)

Format
A data.frame containing 576 observations of 12 variables. There are two versions, one with shorter
factor names than the other.

References
Brien, C.J. and Payne, R.W. (1999) Tiers, structure formulae and the analysis of complicated exper-
iments. The Statistician, 48, 41-52.

set.daeTolerance Sets the values of daeTolerance for the package dae

Description
A function that sets the values such that, in dae functions, values less than it are considered to be
zero. The values are stored in a vector named daeTolerance in the daeEnv environment. The
vector is of length two and, initially, both values are set to .Machine$double.eps ^ 0.5 (about
1.5E-08). One value is named element.tol and is used for elements of matrices; the second is
named element.eigen and is used for eigenvalues and quantities based on them, such as efficiency
factors.

Usage
set.daeTolerance(element.tol=NULL, eigen.tol=NULL)
show-methods 115

Arguments

element.tol The value to to which the first element of the daeTolerance vector is to be set.
If more than one value is supplied, only the first value is used.
eigen.tol The value to to which the second element of the daeTolerance vector is to be
set. If more than one value is supplied, only the first value is used.

Value

The vector daeTolerance is returned invisibly.

Author(s)

Chris Brien

See Also

get.daeTolerance.

Examples

## set daeTolerance.
set.daeTolerance(1E-04, 1E-08)

show-methods Methods for Function show in Package dae

Description

Methods for function show in Package dae

Methods

signature(object = "projector") Prints the matrix and its degrees of freedom.

See Also

projector for further information about this class.


116 strength

SPLGrass.dat Data for an experiment to investigate the effects of grazing patterns on


pasture composition

Description

The response variable is the percentage area covered by the principal grass (Main.Grass). The
design for the experiment is a split-unit design. The main units are arranged in 3 Rows x 3 Columns.
Each main unit is split into 2 SubRows x 2 SubColumns.
The factor Period, with levels 3, 9 and 18 days, is assigned to the main units using a 3 x 3 Latin
square. The two-level factors Spring and Summer are assigned to split-units using a criss-cross
design within each main unit. The levels of each of Spring and Summer are two different grazing
patterns in its season.

Usage

data(SPLGrass.dat)

Format

A data.frame containing 36 observations of 8 variables.

Source

Example 14.1 from Mead, R. (1990). The Design of Experiments: Statistical Principles for Practi-
cal Application. Cambridge, Cambridge University Press.

strength Generate paper strength values

Description

Generates paper strength values for an experiment with different temperatures.

Usage

strength(nodays, noruns, temperature, ident)


strength 117

Arguments

nodays The number of days over which the experiment is to be run.


noruns The number of runs to be performed on each day of the experiment.
temperature A factor that encapsulates the layout by giving the temperature to be investi-
gated for each run on each day. These must be ordered so that the temperatures
for the first day are given in the order in which they are to be investigated on that
day. These must be followed by the noruns temperatures for the second day and
so on. Consequently, the factor temperature will have nodays*noruns values.
ident The digits of your student identity number. That is, leave out any letters.

Value

A data.frame object containing the factors day, run and temperature and a vector of the gener-
ated strengths.

Author(s)

Chris Brien

Examples

## Here temperature is a factor with 4*3 = 12 values whose


## first 3 values specify the temperatures to be applied in
## the 3 runs on the first day, values 4 to 6 specify the
## temperatures for the 3 runs on day 2, and so on.
temperature <- factor(rep(c(80,85,90), 4))
exp.strength <- strength(nodays = 4, noruns = 3,
temperature = temperature, ident = 0123456)

## In this second example, a completely randomized design is generated


## for the same 3 temperatures replicated 4 times. The layout is stored
## in the data.frame called Design.
Design <- designRandomize(allocated = temperature,
recipient = list(runs = 12),
seed = 5847123)
## eradicate the unrandomized version of temperature
remove("temperature")

## The 12 temperatures in Design are to be regarded as being assigned to


## days and runs in the same manner as for the first example.
exp.strength <- strength(nodays = 4, noruns = 3,
temperature = Design$temperature, ident = 0123456)
118 summary.p2canon

summary.p2canon Summarize a canonical analysis of the relationships between two sets


of projectors

Description
Produces a summary of the efficiency criteria computed from the canonical efficiency factors for the
joint decomposition of two sets of projectors (Brien and Bailey, 2009) obtained using projs.2canon.
It takes the form of a decomposition or skeleton ANOVA table.

Usage
## S3 method for class 'p2canon'
summary(object, which.criteria = c("aefficiency", "eefficiency", "order"), ...)

Arguments
object A list of class p2canon produced by projs.2canon.
which.criteria A character vector nominating the efficiency criteria to be included in the sum-
mary. It can be none, all or some combination of aefficiency, mefficiency,
sefficiency, eefficiency, xefficiency, order and dforthog – for details
see efficiency.criteria.
... further arguments affecting the summary produced.

Value
An object of classes summary.p2canon and data.frame, whose rows correspond to the pairs of
projectors, one from the Q1 argument and the other from the Q2 argument from projs.2canon;
only pairs with non-zero efficiency factors are included. In addition, a line is included for each
nonzero Residual Q1 projector.

Author(s)
Chris Brien

References
Brien, C. J. and R. A. Bailey (2009). Decomposition tables for multitiered experiments. I. A chain
of randomizations. The Annals of Statistics, 36, 4184 - 4213.

See Also
projs.2canon, proj2.efficiency, efficiency.criteria, proj2.combine, proj2.eigen, pstructure,
print.summary.p2canonin package dae, eigen.
projector for further information about this class.
summary.pcanon 119

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)

##obtain projectors using pstructure


unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
trt.struct <- pstructure(~ trt, data = PBIBD2.lay)

##obtain combined decomposition and summarize


unit.trt.p2canon <- projs.2canon(unit.struct$Q, trt.struct$Q)
summary(unit.trt.p2canon)

summary.pcanon Summarizes the anatomy of a design, being the decomposition of the


sample space based on its canonical analysis, as produced by desig-
nAnatomy

Description
Gives the anatomy of a design in a table; it summarizes the joint decomposition of two or more sets
of projectors (Brien and Bailey, 2009) obtained using designAnatomy. It includes the efficiency
criteria computed from the canonical efficiency factors for the joint decomposition. The labels in
the table may be Terms or Sources. The terms are those that would be included in a mixed model
for an experiment based on the design. The sources are the orthogonal subspaces, derived from the
terms, that make up the decomposition and the degrees of freedom and efficiency factors relate to
these subspaces. The table displays how the information for the different sources allowed for in
the design are related. For more information about the notation used for sources see the labels
argument of designAnatomy.
It is possible to supply an object that is a pcanon.object produced in versions prior to 3.0-0 using
projs.canon.

Usage
## S3 method for class 'pcanon'
summary(object, labels.swap = FALSE,
which.criteria = c("aefficiency", "eefficiency", "order"), ...)

Arguments
object A pcanon.object.
120 summary.pcanon

labels.swap A logical indicating whether to swap between "sources" and ‘terms’ in the
output. The default is established by the labels argument of designAnatomy
and projs.canon.
which.criteria A character vector nominating the efficiency criteria to be included in the
summary. It can be none, all or some combination of aefficiency, mefficiency,
sefficiency, eefficiency, xefficiency, order and dforthog – for details
see efficiency.criteria. If there is only one formula, this argument is ig-
nored.
... further arguments affecting the summary produced.

Value
An object of class summary.pcanon that is a list with the two components decomp and aliasing.
The component decomp is a data.frame whose rows correspond to subspaces in the decomposition
for a design. It has the following attributes: (i) title that is the title for printing with the
decomposition table; (ii) ntiers that is equal to the number of tiers; (iii) orthogonal that is TRUE
if the design is orthogonal; (iv) labels that is either "terms" or "sources" depending on the labels
that have resulted from the setting of label.swap.
The component aliasing is a data.frame that is also of class aliasing. It contains information
about the aliasing between terms that are derived from the same formula and has the attribute title
that is the title to be printed with the aliasing table.
However, if the object supplied is a pcanon.object produced with versions prior to 3.0-0 using
projs.canon, the value is a data.frame, instead of a list, that has the same attributes as the
decomp component of the summary.pcanon object now produced, except that labels is always set
to "terms".

Author(s)
Chris Brien

References
Brien, C. J. and R. A. Bailey (2009). Decomposition tables for multitiered experiments. I. A chain
of randomizations. The Annals of Statistics, 36, 4184 - 4213.

See Also
designAnatomy, designAnatomy, , pstructure, efficiency.criteria, proj2.combine,
proj2.efficiency, proj2.eigen, print.summary.pcanonin package dae, eigen.
projector for further information about this class.

Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
tukey.1df 121

PBIBD2.lay <- designRandomize(allocated = trt,


recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)

##obtain combined decomposition and summarize


unit.trt.canon <- designAnatomy(list(unit=~ Block/Unit, trt=~ trt),
data = PBIBD2.lay)
summary(unit.trt.canon, which = c("aeff","eeff","order"))
summary(unit.trt.canon, which = c("aeff","eeff","order"), labels.swap = TRUE)

tukey.1df Performs Tukey’s one-degree-of-freedom-test-for-nonadditivity

Description
Performs Tukey’s one-degree-of-freedom-test-for-nonadditivity on a set of residuals from an anal-
ysis of variance.

Usage
tukey.1df(aov.obj, data, error.term="Within")

Arguments
aov.obj An aov object or aovlist object created from a call to aov.
error.term The term from the Error function whose residuals are to be tested for nonad-
ditivity. Only required when the Error function used in call to aov, so that an
aovlist object is created.
data A data.frame containing the original response variable and factors used in the
call to aov.

Value
A list containing Tukey.SS, Tukey.F, Tukey.p, Devn.SSq being the SSq for the 1df test, F value
for test and the p-value for the test.

Note
In computing the test quantities fitted values must be obtained. If error.term is specified, fitted
values will be the sum of effects extracted from terms from the Error function, but only down to
that specified by error.term.The order of terms is as given in the ANOVA table. If error.term is
unspecified, all effects for terms external to any Error terms are extracted and summed.
Extracted effects will only be for terms external to any Error function. If you want effects for terms
in the Error function to be included, put them both inside and outside the Error function so they
are occur twice.
122 yates.effects

Author(s)

Chris Brien

See Also

fitted.errors, resid.errors in package dae.

Examples
## set up data frame for randomized complete block design in Table 4.4 from
## Box, Hunter and Hunter (2005) Statistics for Experimenters. 2nd edn
## New York, Wiley.
RCBDPen.dat <- fac.gen(list(Blend=5, Flask=4))
RCBDPen.dat$Treat <- factor(rep(c("A","B","C","D"), times=5))
RCBDPen.dat$Yield <- c(89,88,97,94,84,77,92,79,81,87,87,
85,87,92,89,84,79,81,80,88)

## perform the analysis of variance


RCBDPen.aov <- aov(Yield ~ Blend + Treat + Error(Blend/Flask), RCBDPen.dat)
summary(RCBDPen.aov)

## Obtain the quantities for Tukey's test


tukey.1df(RCBDPen.aov, RCBDPen.dat, error.term = "Blend:Flask")

yates.effects Extract Yates effects

Description

Extracts Yates effects from an aov object or aovlist object.

Usage

yates.effects(aov.obj, error.term="Within", data=NULL)

Arguments

aov.obj An aov object or aovlist object created from a call to aov.


error.term The term from the Error function from which the Yates effects are estimated.
Only required when Error used in call to aov.
data A data.frame in which the variables specified in the aov.obj will be found. If
missing, the variables are searched for in the standard way.
Zncsspline 123

Details

Yates effects are specific to 2k experiments, where Yates effects are conventionally defined as the
difference between the upper and lower levels of a factor. We follow the convention used in Box,
Hunter and Hunter (1978) for scaling of higher order interactions: all the Yates effects are on the
same scale, and represent the average difference due to the interaction between two different levels.
Effects are estimated only from the error term supplied to the error.term argument.

Value

A vector of the Yates effects.

Author(s)

Chris Brien

See Also

qqyeffects in package dae, aov.

Examples
## analysis of 2^4 factorial experiment from Table 10.6 of Box, Hunter and
## Hunter (1978) Statistics for Experimenters. New York, Wiley.
## use ?Fac4Proc.dat for data set details
data(Fac4Proc.dat)
Fac4Proc.aov <- aov(Conv ~ Catal * Temp * Press * Conc + Error(Runs),
Fac4Proc.dat)
round(yates.effects(Fac4Proc.aov, error.term="Runs", data=Fac4Proc.dat), 2)

Zncsspline Calculates the design matrix for fitting the random component of a
natural cubic smoothing spline

Description

Calculates the design matrix, Z, of the random effects for a natural cubic smoothing spline as
described by Verbyla et al., (1999). An initial design matrix, ∆∆−1 ∆, based on the knot points
is computed. It can then be post multiplied by the power of the tri-diagonal matrix Gs that is
proportional to the variance matrix of the random spline effects. If the power is set to 0.5 then the
random spline effects based on the resulting Z matrix will be independent with variance σs2 .

Usage

Zncsspline(knot.points, Gpower = 0, print = FALSE)


124 Zncsspline

Arguments
knot.points A numeric giving the values of the knot points to be used in fitting the spline.
These must be orderd in increasing order.
Gpower A numeric giving the power of the tri-diagonal matrix Gs from which the vari-
ance matrix of the random spline effects is caluclated. that the initial design ma-
trix is to be the value of the variance component for the random spline effects.
The smoothing parameter is then the inverse of the ratio of this component to
the residual variance.
print A logical indicating whether to print the ∆ and Gs matrices.

Value
A matrix containing the design matrix.

Author(s)
Chris Brien

References
Verbyla, A. P., Cullis, B. R., Kenward, M. G., and Welham, S. J. (1999). The analysis of designed
experiments and longitudinal data by using smoothing splines (with discussion). Journal of the
Royal Statistical Society, Series C (Applied Statistics), 48, 269-311.

See Also
mat.ncssvar.

Examples
Z <- Zncsspline(knot.points = 1:10, Gpower = 0.5)
Index

∗Topic aplot pcanon.object, 88


designPlotlabels, 27 print.aliasing, 90
interaction.ABC.plot, 58 print.projector, 91
∗Topic array print.pstructure, 92
as.data.frame.pstructure, 9 proj2.combine, 95
correct.degfree, 14 proj2.efficiency, 96
decomp.relate, 16 proj2.eigen, 98
degfree, 17 projector, 99
designAnatomy, 20 projector-class, 100
designLatinSqrSys, 24 projs.2canon, 102
designTwophaseAnatomies, 32 projs.combine.p2canon, 103
efficiencies, 35 pstructure.formula, 104
efficiency.criteria, 37 pstructure.object, 108
elements, 38 show-methods, 115
fac.ar1mat, 41 summary.p2canon, 118
fac.meanop, 49 summary.pcanon, 119
fac.sumop, 52 Zncsspline, 123
fac.vcmat, 53 ∗Topic asreml
is.projector, 61 daeTips, 15
marginality, 62 ∗Topic classes
mat.ar1, 64 projector-class, 100
mat.ar2, 64 ∗Topic datagen
mat.ar3, 65 designRandomize, 29
mat.arma, 67 fac.gen, 44
mat.banded, 68 fac.layout, 46
mat.dirprod, 69 rmvnorm, 112
mat.dirsum, 70 strength, 116
mat.exp, 71 ∗Topic datasets
mat.gau, 71 ABC.Interact.dat, 8
mat.I, 72 BIBDWheat.dat, 11
mat.J, 73 Casuarina.dat, 13
mat.ma1, 74 Exp249.mplot.des, 39
mat.ma2, 74 Fac4Proc.dat, 54
mat.ncssvar, 75 LatticeSquare_t49.des, 62
mat.sar, 76 McIntyreTMV.dat, 83
mat.sar2, 77 Oats.dat, 86
mat.Vpred, 78 Sensory3Phase.dat, 113
mat.Vpredicts, 80 SPLGrass.dat, 116
p2canon.object, 87 ∗Topic design

125
126 INDEX

blockboundaryPlot, 11 fac.recode, 51
decomp.relate, 16 mpone, 84
designAmeasures, 18 ∗Topic hplot
designAnatomy, 20 designPlotlabels, 27
designLatinSqrSys, 24 interaction.ABC.plot, 58
designPlot, 24 qqyeffects, 109
designPlotlabels, 27 ∗Topic htest
designRandomize, 29 fitted.aovlist, 54
designTwophaseAnatomies, 32 fitted.errors, 56
detect.diff, 34 qqyeffects, 109
efficiencies, 35 resid.errors, 110
efficiency.criteria, 37 residuals.aovlist, 111
fac.gen, 44 tukey.1df, 121
fac.layout, 46 yates.effects, 122
fac.match, 48 ∗Topic iplot
interaction.ABC.plot, 58 qqyeffects, 109
marginality, 62 ∗Topic manip
mat.ncssvar, 75 as.numfac, 10
mat.Vpred, 78 elements, 38
mat.Vpredicts, 80 extab, 40
no.reps, 85 fac.combine, 42
p2canon.object, 87 fac.divide, 43
pcanon.object, 88 fac.nested, 50
power.exp, 89 fac.recode, 51
print.summary.p2canon, 93 get.daeTolerance, 57
print.summary.pcanon, 94 harmonic.mean, 58
proj2.combine, 95 is.allzero, 60
proj2.efficiency, 96 mpone, 84
proj2.eigen, 98 set.daeTolerance, 114
projs.2canon, 102 ∗Topic methods
projs.combine.p2canon, 103 fitted.aovlist, 54
pstructure.formula, 104 residuals.aovlist, 111
pstructure.object, 108 show-methods, 115
qqyeffects, 109 ∗Topic models
strength, 116 fitted.aovlist, 54
summary.p2canon, 118 fitted.errors, 56
summary.pcanon, 119 resid.errors, 110
yates.effects, 122 residuals.aovlist, 111
Zncsspline, 123 tukey.1df, 121
∗Topic factor ∗Topic package
as.numfac, 10 dae-package, 4
designRandomize, 29 ∗Topic plot
fac.combine, 42 blockboundaryPlot, 11
fac.divide, 43 designPlot, 24
fac.gen, 44 ∗Topic projector
fac.layout, 46 as.data.frame.pstructure, 9
fac.match, 48 correct.degfree, 14
fac.nested, 50 decomp.relate, 16
INDEX 127

degfree, 17 coerce,projector,matrix-method
designAnatomy, 20 (projector-class), 100
designTwophaseAnatomies, 32 coerce<-,projector,matrix-method
efficiencies, 35 (projector-class), 100
efficiency.criteria, 37 correct.degfree, 7, 14, 17, 18, 50, 61, 100,
fac.meanop, 49 101
fac.sumop, 52
get.daeTolerance, 57 dae (dae-package), 4
is.projector, 61 dae-deprecated, 15
marginality, 62 dae-package, 4
p2canon.object, 87 daeTips, 15
pcanon.object, 88 data.frame, 9, 21, 28–30, 32, 43–47, 59, 81,
print.aliasing, 90 88, 90, 108
print.projector, 91 decomp.relate, 7, 16, 96
print.pstructure, 92 degfree, 7, 14, 17, 50, 100, 101
print.summary.p2canon, 93 degfree<- (degfree), 17
print.summary.pcanon, 94 design.plot (dae-deprecated), 15
proj2.combine, 95 designAmeasures, 5, 18, 79, 82
proj2.efficiency, 96 designAnatomy, 5, 7, 19, 20, 24, 27, 30,
proj2.eigen, 98 32–36, 62, 63, 87, 88, 119, 120
projector, 99 designLatinSqrSys, 5, 23, 24, 27, 30
projector-class, 100 designPlot, 5, 11, 12, 23, 24, 24, 28, 30
projs.2canon, 102 designPlotlabels, 5, 27, 27
projs.combine.p2canon, 103 designRandomize, 5, 23, 24, 27, 29, 46
pstructure.formula, 104 designTwophaseAnatomies, 5, 31
pstructure.object, 108 detect.diff, 5, 34, 86, 89
set.daeTolerance, 114
efficiencies, 35
show-methods, 115
efficiencies.p2canon, 7, 103
summary.p2canon, 118
efficiencies.pcanon, 7, 23, 34
summary.pcanon, 119
efficiency.criteria, 8, 22, 23, 33, 34, 37,
87, 90, 92, 97, 103, 106, 108, 118,
ABC.Interact.dat, 4, 8 120
Ameasures (dae-deprecated), 15 eigen, 16, 23, 34, 36, 37, 63, 97, 98, 103, 107,
aov, 55, 56, 109–111, 121–123 118, 120
array, 101 elements, 6, 38
as.data.frame, 9 Exp249.mplot.des, 4, 39
as.data.frame.pstructure, 7, 9 extab, 8, 40
as.numeric, 10
as.numfac, 4, 10, 52 fac.ar1mat, 6, 41, 54, 113
fac.combine, 5, 28, 42, 44, 45, 49, 50, 52, 53,
BIBDWheat.dat, 4, 11 58, 59
blockboundary.plot (dae-deprecated), 15 fac.divide, 5, 43, 43
blockboundaryPlot, 5, 11, 27 fac.gen, 5, 29, 30, 44, 47, 51
fac.layout, 46
Casuarina.dat, 4, 13 fac.match, 5, 48
character, 9, 12, 21, 22, 25, 26, 29, 30, 32, fac.meanop, 8, 41, 49, 53, 54, 83
33, 46, 77, 88, 105, 108, 120 fac.nested, 5, 50
chol, 113 fac.recode, 5, 10, 51
128 INDEX

fac.sumop, 6, 41, 50, 52, 54 mat.sar2, 6, 64–68, 71, 72, 74, 75, 77, 77
fac.vcmat, 6, 41, 53, 113 mat.Vpred, 6, 19, 78, 80, 82
Fac4Proc.dat, 4, 54 mat.Vpredicts, 6, 78, 79, 80
factor, 10, 29, 30, 40–47, 49–53, 58, 59, 84, match, 48, 49
117 matrices, 80
fitted, 54, 56 matrix, 11, 16, 19, 21, 25, 26, 33, 41, 53, 61,
fitted (fitted.aovlist), 54 62, 64–82, 88, 95, 98–101, 105, 108,
fitted.aovlist, 6, 54, 56 115, 124
fitted.errors, 6, 55, 56, 110, 111, 122 McIntyreTMV.dat, 4, 83
formula, 21, 32, 78, 80, 81, 88, 105, 108 meanop, 83
mpone, 5, 52, 84, 84
geom_text, 28
get.daeTolerance, 8, 57, 115 no.reps, 5, 35, 85, 89
ggplot, 28, 59 numeric, 12, 19, 24–26, 30, 65–68, 75–77, 124

harmonic.mean, 8, 58 Oats.dat, 4, 86

integer, 25 p2canon.object, 23, 34, 35, 87, 88, 102


interaction.ABC.plot, 6, 58 par, 12, 25–27
interaction.plot, 59 pcanon.object, 5, 21–23, 32–36, 62, 63, 87,
is.allzero, 8, 60 88, 119, 120
is.projector, 7, 61, 100 polygon, 26, 27
power.exp, 5, 35, 86, 89
LatticeSquare_t49.des, 4, 62 print, 90–92
list, 16, 19, 21, 28–30, 32, 33, 42–44, 46, 59, print,projector-method
81, 88, 120 (print.projector), 91
logical, 9, 12, 21, 22, 25, 26, 28, 32, 76, 81, print.aliasing, 5, 90
94, 105, 106, 120, 124 print.default, 90–92
print.projector, 7, 91
marginality, 62 print.pstructure, 7, 92
marginality.pstructure, 5 print.summary.p2canon, 7, 93, 118
mat.ar1, 6, 64, 65–68, 71–73, 75, 77, 78 print.summary.pcanon, 7, 94, 120
mat.ar2, 6, 64, 64, 66, 68, 71, 72, 74, 77, 78 proj2.combine, 8, 16, 23, 34, 36, 37, 63, 95,
mat.ar3, 6, 64, 65, 65, 67, 68, 71, 72, 74, 75, 97, 98, 102–104, 107, 118, 120
77, 78 proj2.decomp (dae-deprecated), 15
mat.arma, 6, 64–66, 67, 68, 71, 72, 74, 75, 77, proj2.efficiency, 8, 23, 34, 36, 37, 63, 96,
78 96, 98, 103, 107, 118, 120
mat.banded, 6, 64–67, 68, 71, 72, 74, 75, 77, proj2.eigen, 8, 16, 23, 34, 36, 37, 63, 87, 96,
78 97, 98, 103, 104, 107, 118, 120
mat.dirprod, 6, 69, 69, 70 proj2.ops (dae-deprecated), 15
mat.dirsum, 6, 70 projector, 7, 14, 17, 18, 23, 34, 36, 37, 50,
mat.exp, 6, 64–68, 71, 72, 74, 75, 77, 78 61, 63, 79, 81, 91, 96–99, 99,
mat.gau, 6, 64–68, 71, 71, 74, 75, 77, 78 100–107, 109, 115, 118, 120
mat.I, 6, 64–68, 71, 72, 72, 73–75, 77, 78 projector-class, 7, 100
mat.J, 6, 64–68, 71–73, 73, 74, 75, 77, 78 projs.2canon, 7, 22, 23, 34–36, 87, 88, 102,
mat.ma1, 6, 64–68, 71, 72, 74, 75, 77, 78 103, 104, 107, 118
mat.ma2, 6, 64–68, 71, 72, 74, 74, 77, 78 projs.canon, 120
mat.ncssvar, 6, 75, 124 projs.canon (dae-deprecated), 15
mat.sar, 6, 76, 78 projs.combine.p2canon, 7, 103, 103
INDEX 129

projs.structure (dae-deprecated), 15 structure, 101


pstructure, 22, 23, 34, 36, 63, 103, 118, 120 summary,p2canon-method
pstructure (pstructure.formula), 104 (summary.p2canon), 118
pstructure.formula, 7, 22, 62, 63, 88, 104, summary,pcanon-method (summary.pcanon),
106, 108, 109 119
pstructure.object, 5, 9, 62, 63, 88, 92, 104, summary.p2canon, 7, 93, 103, 118
107, 108 summary.pcanon, 5, 7, 21, 23, 32, 34, 36, 63,
94, 119
qqnorm, 110
qqyeffects, 6, 109, 123 text, 25
tukey.1df, 6, 55, 56, 110, 111, 121
relevel, 52, 84
resid.errors, 6, 55, 56, 110, 111, 122 vector, 48, 101, 113
residuals, 110, 111
residuals (residuals.aovlist), 111 yates.effects, 6, 110, 122
residuals.aovlist, 6, 110, 111
Zncsspline, 6, 76, 123
rmvnorm, 8, 112
rnorm, 113

Sensory3Phase.dat, 4, 113
Sensory3PhaseShort.dat, 4
Sensory3PhaseShort.dat
(Sensory3Phase.dat), 113
set.daeTolerance, 8, 14, 16, 17, 57, 58, 60,
61, 95, 97–99, 102, 114
show, 90–92
show,ANY-method (show-methods), 115
show,classRepresentation-method
(show-methods), 115
show,genericFunction-method
(show-methods), 115
show,MethodDefinition-method
(show-methods), 115
show,MethodSelectionReport-method
(show-methods), 115
show,MethodWithNext-method
(show-methods), 115
show,ObjectsWithPackage-method
(show-methods), 115
show,oldClass-method (show-methods), 115
show,projector-method (show-methods),
115
show,signature-method (show-methods),
115
show,traceable-method (show-methods),
115
show-methods, 8, 115
SPLGrass.dat, 4, 116
strength, 6, 116

You might also like