尝试打印树形图时出现节点堆栈溢出错误

时间:2017-05-14 00:38:40

标签: r dendrogram

我试图以dendrogram顺序获取BFS的内部节点的高度。

utils::str函数以dendrogram顺序打印BFS。所以我以为我会使用它(将输出重定向到文件并对其进行一些解析)获得我需要的信息。

我的'dendrogram'有2个分支机构,共有5902个成员download RDS file link: dendro.RDS

当我尝试:

utils::str(dendro)

我收到此错误:

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

我尝试使用简单的递归函数:

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

但:     nodeHeights(dendro)

引发此错误:

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

有什么想法吗?或者有任何建议如何以dendrogram顺序获取BFS的节点高度?

2 个答案:

答案 0 :(得分:2)

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

来自?options

  

表达式设置了嵌套表达式数量的限制   被评估

答案 1 :(得分:1)

在我的.bashrc中添加ulimit -s <high_value>就可以了。