prc {vegan}R Documentation

Principal Response Curves for Treatments with Repeated Observations


Principal Response Curves (PRC) are a special case of Redundancy Analysis (rda) for multivariate responses in repeated observation design. They were originally suggested for ecological communities. They should be easier to interpret than traditional constrained ordination.


prc(response, treatment, time, ...)
## S3 method for class 'prc':
summary(object, axis = 1, scaling = 2, digits = 4, ...)
## S3 method for class 'prc':
plot(x, species = TRUE, select, scaling = 2, axis = 1, type = "l", 
    xlab, ylab, ylim, lty = 1:5, col = 1:6, pch, legpos, cex = 0.8, 


response Multivariate response data. Typically these are community (species) data. If the data are counts, they probably should be log transformed prior to the analysis.
treatment A factor for treatments.
time An unordered factor defining the observations times in the repeated design.
object, x An prc result object.
axis Axis shown (only one axis can be selected).
scaling Scaling of species scores, identical to the scaling in scores.rda.
digits Number of significant digits displayed.
species Display species scores.
select Vector to select displayed species. This can be a vector of indices or a logical vector which is TRUE for the selected species
type Type of plot: "l" for lines, "p" for points or "b" for both.
xlab, ylab Text to replace default axis labels.
ylim Limits for the vertical axis.
lty, col, pch Line type, colour and plotting characters (defaults supplied).
legpos The position of the legend. A guess is made if this is not supplied, and NA will suppress legend.
cex Character expansion for symbols and species labels.
... Other parameters passed to functions.


PRC is a special case of rda with a single factor for treatment and a single factor for time points in repeated observations. In vegan, the corresponding rda model is defined as rda(response ~ treatment * time + Condition(time)). Since the time appears twice in the model formula, its main effects will be aliased, and only interaction terms are available, and will be used in PRC. Instead of usual multivariate ordination diagrams, PRC uses canonical (regression) coefficients and species scores for a single axis. All that the current functions do is to provide a special summary and plot methods that display the rda results in the PRC fashion. With default contrasts (contr.treatment) the coefficients are contrasts against the first level, and the levels must be arranged so that the first level is the control.

Function summary prints the species scores and the coefficients. Function plot plots coefficients against time using matplot, and has similar defaults. The graph (and PRC) is meaningful only if the first treatment level is the control, as the results are contrasts to the first level when unordered factors are used. The plot also displays species scores on the right vertical axis using function linestack. Typically the number of species is so high that not all can be displayed with the default settings, but users can reduce character size or padding (air) in linestack, or select only a subset of the species. A legend will be displayed unless suppressed with legpos = NA, and the functions tries to guess where to put the legend if legpos is not supplied.


The function is a special case of rda and returns its result object (see cca.object). However, a special summary and plot methods display returns differently than in rda.


The first level of treatment must be the control, and the treatment contrasts must be used (see contr.treatment), so that results are expressed as contrasts to the control. The function works with other contrast types also, but then the user must take care that the resulting coefficients are meaningful. The time must be an unordered factor.


Jari Oksanen


van den Brink, P.J. & ter Braak, C.J.F. (1999). Principal response curves: Analysis of time-dependent multivariate responses of biological community to stress. Environmental Toxicology and Chemistry, 18, 138–148.

See Also

rda, anova.cca.


# Chlorpyrifos experiment and experimental design
week <- gl(11, 12, labels=c(-4, -1, 0.1, 1, 2, 4, 8, 12, 15, 19, 24))
dose <- factor(rep(c(0.1, 0, 0, 0.9, 0, 44, 6, 0.1, 44, 0.9, 0, 6), 11))
mod <- prc(pyrifos, dose, week)
mod            # RDA
summary(mod)   # PRC
logabu <- colSums(pyrifos)
plot(mod, select = logabu > 100)
# Permutations should be done only within one week, and we only
# are interested on the first axis
anova(mod, strata = week, first=TRUE)

[Package vegan version 1.16-32 Index]