Skip to content
Prev 132668 / 398506 Next

Finding overlaps in vector

Here's what I finally came up with. Thanks for your help!

Joh

MQUSpotOverlapClusters <- function(
  Series,# Vector of data to be evaluated
  distance=0.5,# Maximum distance of clustered data points
  minSize=2# Minimum size of clusters returned
){
############################################################################################
  # Check prerequisites
  #####################
  # Check prerequisites: Series
  if(!(is.numeric(Series) & length(Series) > 1)){
    stop("'Series' must be a vector of numerical data.")
  }
  # Check prerequisites: distance
  if(!(is.numeric(distance) & distance > 0)){
    stop("'distance' must be a positive number.")
  }
############################################################################################
  # Perform clustering
  ####################
  hc <- hclust(dist(Series), method = "single")
  hcut <- cutree(hc,h=distance)
  cluster.idx <- c()
  for(i in unique(hcut)){
    members <- which(hcut == i)
    if(length(members) >= minSize){
      cluster.idx <- append(cluster.idx,list(members))
    }
  }
  return(cluster.idx)
}
Gabor Grothendieck wrote: