Calculate the distance between each tree in a list, and each other tree in the same list.
Arguments
- x
List of trees, in the format expected by
Func()
.- Func
distance function returning distance between two trees, e.g.
path.dist()
.- FUN.VALUE
Format of output of
Func()
, to be passed tovapply()
. If unspecified, calculated by runningFunc(x[[1]], x[[1]])
.- ...
Additional parameters to pass to
Func()
.
Value
CompareAll()
returns a distance matrix of class dist
detailing
the distance between each pair of trees.
Identical trees are assumed to have zero distance.
Examples
# Generate a list of trees to compare
library("TreeTools", quietly = TRUE)
trees <- list(bal1 = BalancedTree(1:8),
pec1 = PectinateTree(1:8),
pec2 = PectinateTree(c(4:1, 5:8)))
# Compare each tree with each other tree
CompareAll(trees, NNIDist)
#> $lower
#> bal1 pec1 pec2
#> bal1 2 2
#> pec1 2 2
#> pec2 2 2
#>
#> $best_lower
#> bal1 pec1 pec2
#> bal1 2 2
#> pec1 2 3
#> pec2 2 3
#>
#> $tight_upper
#> bal1 pec1 pec2
#> bal1 2 2
#> pec1 2 3
#> pec2 2 3
#>
#> $best_upper
#> bal1 pec1 pec2
#> bal1 2 2
#> pec1 2 3
#> pec2 2 3
#>
#> $loose_upper
#> bal1 pec1 pec2
#> bal1 4 4
#> pec1 4 5
#> pec2 4 5
#>
#> $fack_upper
#> bal1 pec1 pec2
#> bal1 4 4
#> pec1 4 5
#> pec2 4 5
#>
#> $li_upper
#> bal1 pec1 pec2
#> bal1 10 10
#> pec1 10 8
#> pec2 10 8
#>
# Providing FUN.VALUE yields a modest speed gain:
dist <- CompareAll(trees, NNIDist, FUN.VALUE = integer(7))
# View distances as a matrix
as.matrix(dist$lower)
#> bal1 pec1 pec2
#> bal1 0 2 2
#> pec1 2 0 2
#> pec2 2 2 0