2015-07-02 36 views
0

我试图运行一个项目,查看巴西大西洋森林砍伐森林的空间自动相关图。空间相关图

但是,我很困惑,为什么我打这个问题。

问题

当我运行我的代码的初始部分我收到的

Error: ncol(x) == 2 is not 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

您需要使用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)