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