This function is a general tool for checking for concordance between a data file and a phylogenetic tree. For the data, names can be specified as the names of objects in the vector, rownames of the data array or as 'data.names'. The name.check function finds and lists all taxa present in data set but not in the tree, and vice-versa. The treedata function returns a list containing both the tree and the data after pruning out any species that are not found in both.
name.check(phy, data, data.names=NULL)
Taxa in tree but not data
Taxa in data but not tree
...
an object of class "phylo"
data for tips of the tree
names of the tips in the order of the data; if this is not given, names will be taken from the names or rownames of the object data
Luke J. Harmon
data(geospiza)
tmp <- name.check(geospiza$phy, geospiza$dat)
tmp
## then match data to tree
newphy <- drop.tip(geospiza$phy, tip=tmp$tree_not_data)
## name check should now say "OK"
name.check(newphy, geospiza$dat)
## this can all be done in one step using treedata
td <- treedata(geospiza$phy, geospiza$dat)
td
all(td$phy$tip.label == newphy$tip.label)
Run the code above in your browser using DataLab