У меня есть два набора данных - назовем их «сюжет» (734 строки) и «станциями» (62 строки). Некоторое время назад я выяснил, что этот код должен позволять мне связывать каждый «график» с его ближайшей «станцией» на основе их координат.R - Связывание двух разных наборов координат
набор данных немного похож на этот (но без заголовков длинного и лат)
plot - Long Lat stations - Long Lat
13.2 60.5 14.6 55.4
15.4 62.6 15.5 62.9
15.6 62.4 16.4 58.9
16.5 58.7 19.3 64.0
16.5 58.5
#print results to "results.csv"
sink("results.csv")
#identifyl long + lat coords of each data set
p_coord<-SpatialPoints(plot[,c(1,2)])
s_coord<-SpatialPoints(stations[,c(1,2)])
#link coordinates
require(FNN)
g = get.knnx(coordinates(s_coord), coordinates(p_coord),k=1)
str(g)
plot(s_coord_2, col=2, xlim=c(-1e5,6e5))
plot(p_coord, add=TRUE)
segments(coordinates(p_coord)[,1], coordinates(p_coord)[,2], coordinates(s_coord[g$nn.index[,1]])[,1], coordinates(s_coord[g$nn.index[,1]])[,2])
#print result in results.csv
print(g)
Я так понял, что результаты я получаю немного неправильно - например, участки № 3 и № 4 связаны станции № 4, когда он будет более применимо, что участки # 4 и # 5 связаны на станцию №4.
Так что это заставляет меня думать, что что-то в коде немного смещен, но только на одну строку
был бы признателен за любые замечания по моему коду, или я в равной степени заинтересованы в предложения о более простых способов соединить две серии координаты Thanks
«что участки №4 и №5 связаны с станцией № 4». .. не должна быть станция №3? –