Last chance! 50% off unlimited learning
Sale ends in
dist.taxo
function, and the second relies on the discrete.dist
function.
Both methods send an object of class 'correlogram' to be plotted by
the plot.correlogram
method.correlogram.formula(formula, data)
correlogram.phylo(x, phy, nclass = NULL, breaks = NULL)
y ~ g1/../gn
, where y
is the data to plot and all g
are the nested levelscorrelogram.phylo
will return NAs if void classes are used.
This may happen if breaks
if not properly defined, or sometimes with the nclass= argument, depending on the tree used.
Usually, you'll have to pull classes.
Moran.I
function to see how the correlogram.formula
function works.
To deal with phylogenies, the correlogram.phylo
function creates classes according to distances intervals.
Such intervals may be specified using the breaks
argument or by giving a number of classes (nclass
argument).plot.correlogram
library(ape)### (the same analysis than in help(pic)...)
data(carnivora)
# Using the formula interface:
co <- correlogram.formula(log10(SW) ~ Order/SuperFamily/Family/Genus, data=carnivora)
co
plot(co)
# Using the phylo interface:
cat("((((Homo:0.21,Pongo:0.21):0.28,",
"Macaca:0.49):0.13,Ateles:0.62):0.38,Galago:1.00);",
file = "ex.tre", sep = "")
tree.primates <- read.tree("ex.tre")
X <- c(4.09434, 3.61092, 2.37024, 2.02815, -1.46968)
Y <- c(4.74493, 3.33220, 3.36730, 2.89037, 2.30259)
# Since this is a small tree, 2 classes is a reasonable number:
coX <- correlogram.phylo(X, tree.primates, nclass=2)
coY <- correlogram.phylo(Y, tree.primates, nclass=2)
plot(coX)
plot(coY)
# Nothing significant...
# Computing Moran's I on the whole matrix:
coX2 <- correlogram.phylo(X, tree.primates); coX2
# Significant at the 5% level
coY2 <- correlogram.phylo(Y, tree.primates); coY2
# Not significant
unlink("ex.tre") # delete the file "ex.tre"
Run the code above in your browser using DataLab