R/ClusterAnalysis.R

Defines functions ClusterAnalysis

Documented in ClusterAnalysis

#' Cluster groups based on invariance matrices
#'
#' \code{ClusterAnalysis} conducts a cluster analysis for each invaraince matrix
#' in a list.
#' 
#' This function uses \code{\link[stats]{hclust}} to conduct a cluster analysis 
#' for each invaraince matrix in a list.
#'
#' @param matrix.list A list of invariance matrices from 
#' \code{\link{InvarianceMatrices}}
#' @param ... optional arguments that are passed to \code{\link[stats]{hclust}}
#' @return This function returns a list of objects of class hclust.
#'
#' @export
ClusterAnalysis <- function(matrix.list, ...) {
  # creating list to fill in and output
  out.list <- list()
  # for each invariance matrix, run cluster analysis
  for(matrix.number in 1:length(matrix.list)){
    # subset matrix.list to a matrix
    temp.matrix <- matrix.list[[matrix.number]]
    # create a distance matrix
    temp.distances <- stats::dist(temp.matrix)
    temp.distances[1:length(temp.distances)] <- 
      temp.matrix[lower.tri(temp.matrix)] - min(temp.matrix, na.rm = T)
    # run cluster analysis
    temp.cluster = stats::hclust(temp.distances, ...)
    # fill in output list
    out.list[[matrix.number]] <- temp.cluster
    # create names for output list
    names(out.list)[matrix.number] <- names(matrix.list)[matrix.number]
  }
  return(out.list)
}
sethmargolis/PairMeasInv documentation built on May 23, 2019, 1:48 p.m.