我是 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 插槽是空的。谢谢,