Dear List, I am using function distCosine from package geosphere to a list of lat/lon coordinates, and I want to calculate the great circle distance between a pair of coordinates in the list and all other pairs --- essentially, the output should be a matrix. I have been able to achieve this with two nested loops, as in the example below, but this is rather slow. Can someone please suggest how to do this with "apply" or similar? Many thanks, Lara install.packages("geosphere") library(geosphere) ##generate sets of random points n <- 100 lon <- runif(n, -180, 180) lat <- runif(n, -90, 90) #package geosphere ##spherical law of cosines method dCos <- matrix( , nrow = length(lon), ncol = length(lat)) for (i in 1:length(lon)) { for (j in 1:length(lat)) { dCos[[i,j]] <- distCosine(matrix(c(lon[i], lat[i]), ncol=2), matrix(c( lon[j], lat[j]), ncol=2)) }} [[alternative HTML version deleted]]