如何将空间点转换为 R 中的邻居列表?
How do I convert spatial points to neighbours list in R?
我正在尝试将一些空间点转换为 R 中的邻居列表。我有一个世界范围内出现的个别动物物种的列表,每个物种都有一个纬度和经度值。当我试图对可能的空间自相关进行统计分析时,我需要创建一个对象 class nb(邻居列表),但我不知道如何在 R 中进行这种转换。
我的数据如下:
SPECIES LATITUDE LONGITUDE
species A -85 134
species B 34 2
species B 42 3
species B 45 5
species C -2 80
species C -5 79
(...)
数据集还包含具有某些变量值的其他列,但我认为这对我的目的并不重要。
任何帮助将不胜感激。
包 spdep
有不同的方法来计算邻居列表。最好先将数据框转换为空间对象。这将确保正确解释坐标。
dataSp <- read.table( text = '
SPECIES LATITUDE LONGITUDE
speciesA -85 134
speciesB 34 2
speciesB 42 3
speciesB 45 5
speciesC -2 80
speciesC -5 79',
header = TRUE )
library(spdep)
coordinates(dataSp) <- ~ LONGITUDE + LATITUDE
邻居通常是根据多边形计算的,因为共享边界是主要标准。您可以使用 Voronoi 和 Thiessen 等技术生成多边形,但这不是必需的。您可以使用 k nearest 作为标准,而不是使用边界:
knea <- knearneigh(coordinates(dataSp), longlat = TRUE)
neib <- knn2nb(knea)
或使用距离范围:
neib <- dnearneigh(coordinates(dataSp), 0, 10, longlat = TRUE)
我正在尝试将一些空间点转换为 R 中的邻居列表。我有一个世界范围内出现的个别动物物种的列表,每个物种都有一个纬度和经度值。当我试图对可能的空间自相关进行统计分析时,我需要创建一个对象 class nb(邻居列表),但我不知道如何在 R 中进行这种转换。
我的数据如下:
SPECIES LATITUDE LONGITUDE
species A -85 134
species B 34 2
species B 42 3
species B 45 5
species C -2 80
species C -5 79
(...)
数据集还包含具有某些变量值的其他列,但我认为这对我的目的并不重要。
任何帮助将不胜感激。
包 spdep
有不同的方法来计算邻居列表。最好先将数据框转换为空间对象。这将确保正确解释坐标。
dataSp <- read.table( text = '
SPECIES LATITUDE LONGITUDE
speciesA -85 134
speciesB 34 2
speciesB 42 3
speciesB 45 5
speciesC -2 80
speciesC -5 79',
header = TRUE )
library(spdep)
coordinates(dataSp) <- ~ LONGITUDE + LATITUDE
邻居通常是根据多边形计算的,因为共享边界是主要标准。您可以使用 Voronoi 和 Thiessen 等技术生成多边形,但这不是必需的。您可以使用 k nearest 作为标准,而不是使用边界:
knea <- knearneigh(coordinates(dataSp), longlat = TRUE)
neib <- knn2nb(knea)
或使用距离范围:
neib <- dnearneigh(coordinates(dataSp), 0, 10, longlat = TRUE)