encontre localizações dentro de uma certa distância lat / lon em r

Eu tenho um conjunto de dados em grade, com dados disponíveis nos seguintes locais:

lon <- seq(-179.75,179.75, by = 0.5)
lat <- seq(-89.75,89.75, by = 0.5)

Gostaria de encontrar todos os pontos de dados que estão a 500 km do local:

mylat <- 47.9625
mylon <- -87.0431

Eu pretendo usar o pacote de geosfera em R, mas o método que escrevi atualmente não parece muito eficiente:

require(geosphere)
dd2 <- array(dim = c(length(lon),length(lat)))
for(i in 1:length(lon)){
  for(ii in 1:length(lat)){
    clon <- lon[i]
    clat <- lat[ii]
    dd <- as.numeric(distm(c(mylon, mylat), c(clon, clat), fun = distHaversine))
    dd2[i,ii] <- dd <= 500000
  }
}

Aqui, percorro cada grade nos dados e descubro se a distância é inferior a 500 km. Em seguida, armazeno uma variável com TRUE ou FALSE, que posso usar para calcular a média dos dados (outra variável). Com esse método, quero uma matriz com VERDADEIRO ou FALSO para os locais a 500 km da lat e lon mostrados. Existe um método mais eficiente para fazer isso?

questionAnswers(3)

yourAnswerToTheQuestion