У меня есть два отдельных кадра данных пространственной точки в R (цветной красный и черный в прикрепленном сюжете). Как импортировать атрибуты данных из «красного» набора данных в ближайшее место в «черном» наборе данных в R?Как объединить пространственные наборы координат с помощью R?
2
A
ответ
2
Вот один из способов подойти к решению проблемы.
library(raster)
library(sp)
### create some example datasets
coords_A = cbind(runif(10, 1, 10), runif(10,1,10))
sp_A = SpatialPoints(coords_A)
spdf_A = SpatialPointsDataFrame(coords_A, data.frame(varA=letters[1:10]))
coords_B = cbind(runif(10, 1, 10), runif(10,1,10))
sp_B = SpatialPoints(coords_B)
spdf_B = SpatialPointsDataFrame(coords_B, data.frame(varB=letters[11:20], varC=LETTERS[11:20]))
### compute the complete distance matrix between the two sets of points
dist_mat <- pointDistance(spdf_A, spdf_B, lonlat = FALSE, allpairs = TRUE)
### identify nearest point in dataset B for every point in dataset A
nearest <- apply(dist_mat, 1, which.min)
### bind together the data from the dataset B (in your case the "red points")
### at the closest point to dataset A ("black points")
[email protected]<- cbind([email protected], [email protected][nearest,])
+0
Ваш макетный пример работал как шарм, спасибо! –
Это общие вопросы программирования R, касающиеся пространственных наборов данных - и ответ очень хороший, на мой взгляд, он должен быть опубликован для всех, чтобы наслаждаться. Я не мог найти ответ на этот вопрос на любом другом форуме. –