我正在尝试为巴西大西洋森林中的森林砍伐项目运行空间自动校正图。
然而,我很困惑为什么我会遇到这个问题。问题
当我运行代码的初始部分时,我收到错误
错误: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
答案 0 :(得分:0)
您需要使用cbind
,而不是as.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)