2015-07-02 66 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)