nData tests for the presence of data associated with the object.
hasTipData and hasNodeData tests for the presence of
data associated with the tips and the internal nodes
respectively. The outcome of the test is based on row names of the
data frame stored in the data slot. If no rows have names
from the set nodeId(x, "tip"), then hasTipData
returns FALSE. Likewise, if no rows have names from the set
nodeId(x, "internal"), then hasNodeData returns
FALSE.