# Distance matrix
m = as.matrix(mtcars)
str(fdist(m)) # Same as dist(m)
# Distance with vector
d = fdist(m, fmean(m))
kit::topn(d, 5) # Index of 5 nearest neighbours
# Mahalanobis distance
m_mahal = t(forwardsolve(t(chol(cov(m))), t(m)))
fdist(m_mahal, fmean(m_mahal))
sqrt(unattrib(mahalanobis(m, fmean(m), cov(m))))
# \donttest{
# Distance of two vectors
x <- rnorm(1e6)
y <- rnorm(1e6)
microbenchmark::microbenchmark(
fdist(x, y),
fdist(x, y, nthreads = 2),
sqrt(sum((x-y)^2))
)
# }
Run the code above in your browser using DataLab