Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

r

dendrogram

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?

like image 562
dan Avatar asked Oct 18 '22 12:10

dan


1 Answers

> options(expressions=10000)
> nodeHeights(dendro)
[1] 1084

From ?options:

expressions sets a limit on the number of nested expressions that will be evaluated

like image 89
vijucat Avatar answered Oct 21 '22 04:10

vijucat