正如标题所说,我正在尝试使用该spdep
软件包为 527k 点数据集计算 Local Moran,并根据距离创建邻域。我正在做的广义过程如下:
library(spdep)
# Convert coordinates to matrix
matrix_pts <- as.matrix(coordinates)
# Generate neighbors
neighbors <- dnearneigh(matrix_pts,
d1 = 0,
d2 = range)
# Get weight matrix
wm <- nb2listw(neighbors,
zero.policy = T,
style = style)
# Get moran statistics
moran_stat <- localmoran(value,
wm,
zero.policy = T)
但是我遇到了一个问题,我无法使用 来创建社区dnearneigh
,因为数据集太大,社区由 200-1000 个点组成。
我尝试了这里描述的解决方案,我得到了一个数据框,第一行带有 ID,第二行带有包含相邻点 ID 的列表(即):
id int_ids
1: 239226 239226,242762,339386,444833,243000,240521,...
2: 242762 239226,242762,339386,444833,243000,240521,...
3: 339386 239226,242762,339386,444833,243000,240521,...
4: 444833 239226,242762,339386,444833,243000,240521,...
5: 243000 239226,242762,339386,444833,243000,240521,...
6: 240521 239226,242762,339386,444833,243000,240521,...
但是,我不知道如何创建nb
所需的对象nb2listw
,并且四处挖掘对我没有太大帮助。
有没有办法将此数据框转换为nb
对象?如果我能够这样做,权重矩阵会像邻居一样难以创建吗?有没有另一种方法来计算这个卷的数据集的本地莫兰?