使用 sf 在 R 中及时查找最近的邻居和 space

Finding nearest neighbours in time and space in R using sf

我有一个由威尔士投票站组成的数据集,并在其中附加了一个日期列。我们可以想象这个日期是访问这个投票站以检查设施的日期(例如)。

我想做的是锻炼身体:

我想判断地理点是否在一定距离内

以及样本日期之间的间隔

我想我想做的是 每个投票站

这是我得到的一些测试代码,它生成 sf 数据集,计算邻居的数量和 returns。 这真的是让我难过的日期间隔。与其说是日期间隔的计算,不如说是生成这些具有日期间隔的投票站集群的方法。 生成(在本例中)108 个投票站集群是否更好?

我在较大的数据集中尝试做的是随时间计算点簇。 我有大约 2000 条带日期的记录。我想说: 对于这 2000 条记录中的每条记录,计算一段距离内和一段时间内的邻居数量。

我认为这可能更好 计算每个相邻点的簇并可视化 然后 从集群中移除时间范围之外的邻居并可视化

虽然,在键入此内容时,我想知道是否先排除不在时间范围内的点然后计算邻居会更有效?

polls<-st_as_sf(read.csv(url("https://www.caerphilly.gov.uk/CaerphillyDocs/FOI/Datasets_polling_stations_csv.aspx")),
                coords = c("Easting","Northing"),crs = 27700)%>%
        mutate(date = sample(seq(as.Date('2020/01/01'), as.Date('2020/05/31'), by="day"), 147))

test_stack<-polls%>%st_join(polls%>%st_buffer(dist=1000),join=st_within)%>%
  filter(Ballot.Box.Polling.Station.x!=Ballot.Box.Polling.Station.y)%>%
  add_count(Ballot.Box.Polling.Station.x)%>%
  rename(number_of_neighbours = n)%>%
  mutate(interval_date = date.x-date.y)%>%
  subset(select = -c(6:8,10,11,13:18))## removing this comment will summarise the data so that only number of neighbours is returned %>%
  distinct(Ballot.Box.Polling.Station.x,number_of_neighbours,date.x)%>%
  filter(number_of_neighbours >=2)

我觉得可能就这么简单

tm_shape(test_stack)+tm_dots(col = "number_of_neighbours", clustering =T, size = 0.5)

我不确定聚类在 leaflet 中是如何工作的,但在这个测试数据上效果很好。