1
私は大規模なデータセットで作業していますが、私は8GBのRAMを持つローカルマシンで地理空間解析を実行しようとしています。私は自分のマシンのリソースを超えているように見えます。自分のマシンをマシン上で実行できるように私のモデルを最適化できるかどうかは疑問です。距離の最適化distHaversineモデルの大きなdfのR
area <- data.frame(area = c('Baker Street','Bank'),
lat = c(51.522236,51.5134047),
lng = c(-0.157080, -0.08905843),
radius = c(100,2000)
)
stop <- data.frame(station = c('Angel','Barbican','Barons Court','Bayswater'),
lat = c(51.53253,51.520865,51.490281,51.51224),
lng = c(-0.10579,-0.097758,-0.214340,-0.187569),
postcode = c('EC1V','EC1A', 'W14', 'W2'))
library(geosphere)
datNew = lapply(1:nrow(area), function(i) {
df = stop
df$dist = distHaversine(df[,c("lng", "lat")],
area[rep(i,nrow(df)), c('lng','lat')])
df$in_circle = ifelse(df$dist <= area[i, "radius"], "Yes", "No")
df$circle_id = area[i, "area"]
df
})
datNew = do.call(rbind, datNew)
require(dplyr)
datNew <- datNew %>%
group_by(station) %>%
slice(which.min(dist))
それは距離を計算し、その後、私はarea
の数でstations
の数を乗じで終わるしないようにstation
によってstation
で最小距離を見つけることは可能ですか?それとも、リソースを節約する方法でこれを実行したり、ジョブを分割してRAMに収めることができる別のソリューションがありますか?
私が持っている問題は、関数が作成する 'df'がグループ化するには大きすぎるので、私は各点までの距離を計算し、ポイントごとに最小距離を見つけるために何かしたいと思いますそれが理にかなっても後で処理できない大きな 'df'を作成しないでください。それとも、私が考えていないもっと良い解決策がありますか? – Davis
チャームのように働いた。ご協力ありがとうございました! – Davis