有43000對座標,你可以想象,這是一個非常漫長的過程,使用下面的嵌套循環運行,我只是不知道如何使這項工作更快並排除循環。測量座標的經度和緯度座標之間的距離
下面是我的代碼,基於我在網上能夠找到的,以及我在使用R的基礎知識方面的非常陳舊和有限的知識。請教我如何在更高效和優雅的代碼塊中實現這一點如果可能的話。
for (i in 1:length(FixedAssets$Lat)) {
for (p in 1:length(FixedAssets$Lat)) {
dist <- distCosine(as.vector(c(FixedAssets$Longitude[i],FixedAssets$Latitude[i]), mode = "any"), as.vector(c(FixedAssets$Longitude[p],FixedAssets$Latitude[p]), mode = "any"), r = 6378137)
if (dist < 200) { FixedAssets$prox200[i] = FixedAssets$prox200[i] + 1 }
if (dist < 500) { FixedAssets$prox500[i] = FixedAssets$prox500[i] + 1 }
if (dist < 1000) { FixedAssets$prox1000[i] = FixedAssets$prox1000[i] + 1 }
if (dist < 2000) { FixedAssets$prox2000[i] = FixedAssets$prox2000[i] + 1 }
if (dist < 3000) { FixedAssets$prox3000[i] = FixedAssets$prox3000[i] + 1 }
if (dist < 5000) { FixedAssets$prox5000[i] = FixedAssets$prox5000[i] + 1 }
if (dist < 10000) { FixedAssets$prox10000[i] = FixedAssets$prox10000[i] + 1 }
if (dist < 20000) { FixedAssets$prox20000[i] = FixedAssets$prox20000[i] + 1 }
}
print(i)
}