Может быть, это может помочь вам
displacment <- data - do.call(rbind,replicate(nrow(data),centroid,simplify = FALSE))
mqd <- mean(do.call(`+`,displacment**2))
таким, что
> mqd
[1] 6216.857
ДАННЫЕ
centroid <- c(56.6558,3.097367)
data <- structure(list(long = c(-31.9, -29.3167, 50.836, -33.91667),
lat = c(26.8833, 27.4833, 4.385, 18.41667)), class = "data.frame", row.names = c(NA,
-4L))