First, we load the package phylosignal
and the dataset
carnivora
from adephylo
.
Here is a phylogenetic tree of 19 carnivora species.
And we create a dataframe of 3 traits for the 19 carnivora species.
dat <- list()
dat$mass <- carni19$bm
dat$random <- rnorm(19, sd = 10)
dat$bm <- rTraitCont(tre)
dat <- as.data.frame(dat)
We can combine phylogeny and traits into a phylo4d
object.
## $stat
## Cmean I K K.star Lambda
## mass 0.54938871 0.39210678 0.7127747 0.7154914 0.96407615
## random 0.06154705 -0.01382541 0.1735243 0.1725402 0.02616823
## bm 0.75286876 0.49837725 1.6187614 1.6336542 0.99506369
##
## $pvalue
## Cmean I K K.star Lambda
## mass 0.002 0.001 0.001 0.001 0.0010000
## random 0.221 0.323 0.165 0.163 0.8809723
## bm 0.001 0.001 0.001 0.001 0.0010000
mass.crlg <- phyloCorrelogram(p4d, trait = "mass")
random.crlg <- phyloCorrelogram(p4d, trait = "random")
bm.crlg <- phyloCorrelogram(p4d, trait = "bm")
plot(mass.crlg)
carni.lipa <- lipaMoran(p4d)
carni.lipa.p4d <- lipaMoran(p4d, as.p4d = TRUE)
barplot.phylo4d(p4d, bar.col=(carni.lipa$p.value < 0.05) + 1, center = FALSE , scale = FALSE)
barplot.phylo4d(carni.lipa.p4d, bar.col = (carni.lipa$p.value < 0.05) + 1, center = FALSE, scale = FALSE)