ape (version 3.0-5)

rTraitMult: Multivariate Character Simulation

Description

This function simulates the evolution of a multivariate set of traits along a phylogeny. The calculation is done recursively from the root.

Usage

rTraitMult(phy, model, p = 1, root.value = rep(0, p), ancestor = FALSE,
           asFactor = NULL, trait.labels = paste("x", 1:p, sep = ""), ...)

Arguments

Value

A data frame with p columns whose names are given by trait.labels and row names taken from the labels of the tree.

Details

The model is specified with an Rfunction of the form foo(x, l) where x is a vector of the traits of the ancestor and l is the branch length. Other arguments may be added. The function must return a vector of the of length p.

See Also

rTraitCont, rTraitDisc, ace

Examples

Run this code
## correlated evolution of 2 continuous traits:
mod <- function(x, l) {
    y <- numeric(length(x))
    y[1] <- rnorm(1, x[1] + 0.5*x[2], 0.1)
    y[2] <- rnorm(1, 0.5*x[1] + x[2], 0.1)
    y
}
set.seed(11)
tr <- makeNodeLabel(rcoal(20))
x <- rTraitMult(tr, mod, 2, ancestor = TRUE)
op <- par(mfcol = c(2, 1))
plot(x, type = "n")
text(x, labels = rownames(x), cex = 0.7)
oq <- par(mar = c(0, 1, 0, 1), xpd = TRUE)
plot(tr, font = 1, cex = 0.7)
nodelabels(tr$node.label, cex = 0.7, adj = 1)
par(c(op, oq))

Run the code above in your browser using DataCamp Workspace