小编afo*_*ssa的帖子

R中的空间最近邻分配

我正在开展一项研究,试图根据特定个人的地址将颗粒物暴露情况分配给他们。我有两个带有经度和纬度坐标的数据集。一个 if 用于个人,一个 if 用于下午暴露块。我想根据最接近的块为每个主题分配一个下午曝光块。

library(sp)
library(raster)
library(tidyverse)

#subject level data
subjectID<-c("A1","A2","A3","A4")

subjects<-data.frame(tribble(
~lon,~lat,
-70.9821391,    42.3769511,
-61.8668537,    45.5267133,
-70.9344039,    41.6220337,
-70.7283830,    41.7123494
))

row.names(subjects)<-subjectID

#PM Block Locations 
blockID<-c("B1","B2","B3","B4","B5")

blocks<-data.frame(tribble(
~lon,~lat,
-70.9824591,    42.3769451,
-61.8664537,    45.5267453,
-70.9344539,    41.6220457,
-70.7284530,    41.7123454,
-70.7284430,    41.7193454
))

row.names(blocks)<-blockID

#Creating distance matrix
dis_matrix<-pointDistance(blocks,subjects,lonlat = TRUE)

###The above code doesnt preserve the row names. Is there a way to to do 
that?

###I'm unsure about the below code
colnames(dis_matrix)<-row.names(subjects)
row.names(dis_matrix)<-row.names(blocks)

dis_data<-data.frame(dis_matrix)

###Finding nearst neighbor and coercing to usable …
Run Code Online (Sandbox Code Playgroud)

gis r spatial nearest-neighbor

5
推荐指数
1
解决办法
3670
查看次数

标签 统计

gis ×1

nearest-neighbor ×1

r ×1

spatial ×1