Getting a node stack overflow error while trying to print a dendrogram

Viewed 7417

I'm trying to get the heights of internal nodes of a dendrogram in a BFS order.

The utils::str function prints the dendrogram in a BFS order., so I thought I'd use that (redirect the output to a file and do some parsing on that to get the info I need).

My 'dendrogram' has 2 branches and 5902 members total download RDS file link: dendro.RDS.

When I try:

utils::str(dendro)

I get this error:

Error in getOption("OutDec") : node stack overflow
Error during wrapup: node stack overflow

I tried using a simple recursion function:

nodeHeights <- function(dendro){
  if(is.leaf(dendro))
    0
  else{
    cat(attr(dendro,"height"),"\n")
    max(nodeHeights(dendro[[1]]),nodeHeights(dendro[[2]]))+1
  }
}

But: nodeHeights(dendro)

Throws this error:

Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
Error during wrapup: evaluation nested too deeply: infinite recursion / options(expressions=)?

Any idea? Or any suggestion how to get the node heights of a dendrogram in a BFS order?

2 Answers
Related