While searching the web, solutions for finding centroids of polygons come up rather often. What I'm interested in is finding a centroid of a cluster of points. A weighted mean of sorts. I would appreciate it if someone could provide some pointers, pseudo code (or even better, an R package that has already solved this) or links of how this issue can be tackled.
Convergence has been afoot (again). iant has suggested a method to average coordinates and use that for the centroid. This is exactly what crossed my mind when I saw the right picture on this web page.
Here is some simple R code to draw the following figure that demonstrates this (× is the centroid):
xcor <- rchisq(10, 3, 2) ycor <- runif(10, min = 1, max = 100) mx <- mean(xcor) my <- mean(ycor) plot(xcor, ycor, pch = 1) points(mx, my, pch = 3)
cluster::pam()$medoids returns a medoid of a set of cluster. This is an example shamelessly stolen from @Joris Meys:
library(cluster) df <- data.frame(X = rnorm(100, 0), Y = rpois(100, 2)) plot(df$X, df$Y) points(pam(df, 1)$medoids, pch = 16, col = "red")