0

我是 R 编程的新手。我目前正在研究一个可以改进 spdep 包中的 mstree() 的研究项目。我有一个关于如何使 Polygon()、Polygons()、SpatialPolygons() 和 SpationPolygonsDataFrame() 工作的问题。以下是我尝试过的代码:

 library("spdep")
 library("sp")
 require(maptools)
 Dmat<-matrix(nrow=1,ncol=2)
 rownames(Dmat)<-c("s1")
 Dfram<-data.frame(Dmat)

 #diabetesNum is a dataset that I artificially made
 nrows<-nrow(diabetesNum)
 x1matrix<-data.matrix(diabetesNum)
 x1Frame<-data.frame(diabetesNum)
 x1Frame4<-as(x1Frame,"S4")
 x1X<-prcomp(x1Frame)$x

 #Use the first two principal components for coordinates of the points
 xycoordinates<-data.frame(x1X[,1:2])
 row1<-xycoordinates[1,]
 row1M<-data.frame(row1)
 xycoordinates[nrows+1,]<-c(row1M)
 xycoordinates
            PC1         PC2
  1   285.60120   -6.541733
  2   -78.14211  -30.160212
  3  -263.15002   31.236614
  4    51.00528 -143.520521   
  5  -139.55849   27.842465
  6  -244.09755   31.258001
  7   281.18411   12.072960
  8   580.64105   51.538605
  9  -135.05802  -38.923404
 10 -201.08445   47.932800
 11 -137.34100   17.264425
 12  285.60120   -6.541733

 xycoordinatesF<-data.frame(xycoordinates)
 xycoordinatesM<-data.matrix(xycoordinatesF)
 pl<-Polygon(xycoordinatesM)
 pls<-Polygons(list(pl), ID="1")
 Sr<-SpatialPolygons(list(pls))

 bho.nb<-poly2nb(Sr)
 Error in sp$mbxv[i]:(n * 2) : argument of length 0

...和错误!我上面的代码有什么问题?我在互联网上搜索和搜索以找出使用 Polygon()、Polygons()、SpatialPolygons()、SpatialPolygonsDataFrame() 和 poly2nb() 的正确方法,但我只是不知道如何使这些函数工作!我已经阅读了 R 手册,但它并没有太多帮助......不过,一件有趣的事情是,当我查看 Polygons 对象时,Polygons 插槽是空的;同样,当我查看 Sr 时,SpatialPolygons 插槽和 Polygons 插槽是空的。谢谢,

4

0 回答 0