addToPhylo(phylogenyTraits, GROUPTraits)

Prune a phylogeny to the set of species present in a trait data frame.

utilitydata
Args:phylogenyTraits — phylo objectGROUPTraits — trait data frame with species names
addToPhylo <- function(phylogenyTraits, GROUPTraits) {
  phylogenyTraits <- force.ultrametric(tree = phylogenyTraits, method = c("extend"))
  tipsToAdd <- which(!rownames(GROUPTraits) %in% phylogenyTraits$tip.label)
  namesToAdd <- rownames(GROUPTraits)[tipsToAdd]
  genusToAdd <- unlist(strsplit(namesToAdd, "_"))[
    which(1:length(strsplit(namesToAdd, "_")) %% 2 == 1)
  ]
  phylogenyTraitsAdd <- phylogenyTraits

  for (add in 1:length(namesToAdd)) {
    cat(paste("\rADDING SP TO GENUS IN PHYLOGENY", add, "/", length(namesToAdd), "\r"))
    phylogenyTraitsAdd <- add.species.to.genus(
      tree = phylogenyTraitsAdd,
      species = namesToAdd[add],
      genus = genusToAdd[add],
      where = "root"
    )
  }
  return(phylogenyTraitsAdd)
}