https://github.com/cran/smacof
Raw File
Tip revision: 9a30ff0f8e044fd46dfd0b6e8d33660def398521 authored by Jan de Leeuw on 16 March 2011, 00:00:00 UTC
version 1.1-3
Tip revision: 9a30ff0
sim2diss.R
# converts similarity matrix into dissimilarities

sim2diss <- function(similmat, method = "corr", to.dist = TRUE)
{
  # similmat... similarity matrix (not necessarily symmetric, nor quadratic)
  # method ... various methods allowed: "corr" for correlation matrices, "neglog", "counts" or an integer value
  # to.dist ... if TRUE, it creates an object of class "dist", if FALSE a matrix.

  if (method == "corr") dissmat <- sqrt(1-similmat)
  if (method == "neglog") dissmat <- -log(similmat)
  if (method == "counts") dissmat <- -log((similmat*t(similmat))/(outer(diag(similmat),diag(similmat))))
  if (is.numeric(method)) dissmat <- method - similmat

  if (to.dist) dissmat <- as.dist(dissmat)

  return(dissmat)
}
  
                       
                    
 
back to top