R/iorder.R

Defines functions iorder

Documented in iorder

#' iorder
#'
#' A function used to order a hclust object for plotting. Taken directly from https://github.com/bwlewis/hclust_in_R/blob/master/hc.R
#'
#' @param m hclust edges matrix
#'
#' @return an ordering
#'
iorder = function(m)
{
  N = nrow(m) + 1
  iorder = rep(0,N)
  iorder[1] = m[N-1,1]
  iorder[2] = m[N-1,2]
  loc = 2
  for(i in seq(N-2,1))
  {
    for(j in seq(1,loc))
    {
      if(iorder[j] == i)
      {
        iorder[j] = m[i,1]
        if(j==loc)
        {
          loc = loc + 1
          iorder[loc] = m[i,2]
        } else
        {
          loc = loc + 1
          for(k in seq(loc, j+2)) iorder[k] = iorder[k-1]
          iorder[j+1] = m[i,2]
        }
      }
    }
  }
  -iorder
}
gtonkinhill/fastbaps documentation built on Sept. 25, 2022, 1:56 p.m.