R/entropy.R

Defines functions entropy

entropy <- function(P) {
  if (is.null(dim(P))) { # Vector input
    p <- P
    p_nonzero <- p[p > 0]
    return(-sum(p_nonzero * log2(p_nonzero)))
  } else { # Matrix input
    H <- apply(P, 2, function(col) {
      p_nonzero <- col[col > 0]
      -sum(p_nonzero * log2(p_nonzero))
    })
    return(H)
  }
}

Try the IBclust package in your browser

Any scripts or data that you put into this service are public.

IBclust documentation built on Aug. 8, 2025, 6:39 p.m.