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.549388707  0.39210678 0.7127747 0.7154914 9.640762e-01
## random -0.008591412 -0.01054837 0.1710380 0.1656598 6.846792e-05
## bm      0.631997788  0.54900008 1.2066485 1.2041770 1.027115e+00
## 
## $pvalue
##        Cmean     I     K K.star Lambda
## mass   0.002 0.001 0.001  0.001  0.001
## random 0.373 0.311 0.167  0.208  1.000
## bm     0.001 0.001 0.001  0.001  0.001mass.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)