# Apply a Function over a Phylogenetic Tree

### Description

Cuts the tree into slices separated by nodes, applies the function to each slice and returns the weighted (by slice lengths) sum of the results.

### Usage

1 | ```
PhyloApply(Tree, FUN, NorP, Normalize = TRUE, ..., CheckArguments = TRUE)
``` |

### Arguments

`Tree` |
An object of class |

`FUN` |
The function to be applied to each interval of the tree. |

`NorP` |
A numeric vector or a two-column matrix. Contains either abundances or probabilities. Two-column matrices should contain the observed abundances (or probabilities) in the first column and the expected ones in the second column, to allow using beta diversity functions. |

`Normalize` |
If |

`...` |
Further arguments to pass to |

`CheckArguments` |
Logical; if |

### Details

This funtion is generally not used directly. It is a tool to calculate `PhyloEntropy`

and `PhyloDiversity`

.

Intervals separate two cuts in a tree: no node is found at heights contained in an interval.

Objects of class **PPtree** are returned by `Preprocess.Tree`

.

### Value

An object of class `PhyloValue`

. It is a list:

`Distribution` |
The distribution used to calculate the value |

`Function` |
The function used to calculate the value |

`Tree` |
The functional or phylogenetic tree used to calculate the value |

`Normalized` |
Logical. Indicates whether phylovalue is normalized or proportional to the height of the tree. |

`Cuts` |
A named vector containing values along the tree. Names are cut ends, |

`Total` |
A value equal the total value, multiplied by the tree height if |

### Author(s)

Eric Marcon <Eric.Marcon@ecofog.gf>

### References

Marcon, E., Herault, B. (2015). Decomposing Phylodiversity. *Methods in Ecology and Evolution* 6(3): 333-339.

### See Also

`Preprocess.Tree`

### Examples

1 2 3 4 5 6 7 8 9 10 | ```
# Load Paracou data (number of trees per species in two 1-ha plot of a tropical forest
# and their taxonomy)
data(Paracou618)
# Plot the taxonomy
if (require(ade4, quietly = TRUE)) {
radial.phylog(Paracou618.Taxonomy)
}
# Calculate the mean number of trees (individuals) per species
# (Cuts are 1=species, 2=genus, 3=family)
PhyloApply(Paracou618.Taxonomy, mean, Paracou618.MC$Ns, TRUE)
``` |

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker. Vote for new features on Trello.