0

我正在尝试为一个研究巴西大西洋森林砍伐森林的项目运行空间自相关图。

然而,我对为什么遇到这个问题感到困惑。

问题

当我运行代码的初始部分时,我收到一个错误

错误:ncol(x) == 2 不是 TRUE

我的代码是

r.nb <- dnearneigh(as.matrix(shapeS$POINT_X,shapeS$POINT_Y),
                   d1=200, d2=100000, latlong=FALSE)

然后我希望移动运行这段代码

p.cor <- sp.correlogram(r.nb, deforestation, order=15,
                        method="I", randomisation=FALSE)

r.nb <- dnearneigh(as.matrix(shapeS$POINT_X,shapeS$POINT_Y), 
                   d1=200, d2=100000, latlong=FALSE)

我的数据是

带有标题的矢量数据集

POINTID GRID_CODE POINT_X POINT_Y
4

1 回答 1

0

您需要使用cbind, notas.matrix或我在下面显示的方法。始终确定您正在使用的 R 包。您声称您的数据集是“矢量数据集”。我不信。我假设它是一个矩阵。

如果它是一个矩阵,你可以做

m <- shapeS[, c('POINT_X', 'POINT_Y')]
library(spdep)
r.nb <- dnearneigh(m, d1=200, d2=100000, latlong=FALSE)

它是一个data.frame,你可以做

m <- as.matrix(shapeS[, c('POINT_X', 'POINT_Y')])

或者

m <- cbind(shapeS$POINT_X, shapeS$POINT_Y)
于 2015-07-03T03:52:48.437 回答