Skip to contents

hierarchical clustering with spatial soft constraints

Usage

hclustgeo_disc(
  data,
  n,
  alpha = 0.5,
  D1 = NULL,
  hclustm = "ward.D2",
  scale = TRUE,
  wt = NULL,
  ...
)

Arguments

data

An sf object, tibble, data.frame, matrix or vector of observations data.

n

The number of hierarchical clustering classes, which can be a numeric value or vector.

alpha

(optional) A positive value between 0 and 1. This mixing parameter gives the relative importance of "feature" space and "constraint" space. Default is 0.5.

D1

(optional) A matrix with other dissimilarities between the same observations data. if data is an sf object and alpha is not 0, the D1 will be generated by sdsfun::sf_distance_matrix(), others will use a matrix with all elements equal to 0.

hclustm

(optional) The agglomeration method to be used, default is ward.D2. For more details, please see stats::hclust().

scale

(optional) Whether to scaled the dissimilarities matrix, default is TRUE.

wt

(optional) Vector with the weights of the observations. By default, wt is NULL.

...

(optional) Other arguments passed to stats::dist().

Value

The grouped membership: a vector if n is a scalar, a matrix (columns correspond to elements of n) if not.

Note

This is a C++ enhanced implementation of the hclustgeo function in ClustGeo package.

Examples

gzma = sf::read_sf(system.file('extdata/gzma.gpkg',package = 'sdsfun'))
gzma$group = hclustgeo_disc(gzma,5,alpha = 0.75)
plot(gzma["group"])