• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

R语言计算moran‘I

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
install.packages("maptools")#画地图的包
install.packages("spdep")#空间统计,moran'I
install.packages("tripack")
install.packages("RANN")
library("maptools")
library("spdep")
library("tripack")
library("RANN")

#读空间数据
rdata <- readShapePoly("D:/data/cairo.shp")#读取shp面数据
names(rdata)#显示数据字段名字
head(rdata@data)#显示属性表

#按照字段两幅画图
spplot(rdata[c("TFR96_03","TFR86_03") ],
       main = "spatial distribute of TFR96_03",#图名
       xlab = "X Coords",#横坐标名字
       ylab = "Y Coords",#纵坐标名字
       cut = 30#分段
       )

#按照字段一幅画图
spplot(rdata["TFR96_03"],
       main = "spatial distribute of TFR96_03",#图名
       xlab = "X Coords",#横坐标名字
       ylab = "Y Coords",#纵坐标名字
       cut = 30#分段
       )

#按边邻接角邻接生成邻居(方式一)
queen_nb <- poly2nb(rdata, queen = TRUE)#有8个
rook_nb <- poly2nb(rdata, queen = FALSE)#有4个

#获取中心点坐标编号
coords <- coordinates(rdata)

#地图数据转数据框-->生成ID
IDs <- row.names(as.data.frame(rdata))

#设置画参数
oopar <- par(mfrow = c(1,2),
             mar = c(3,3,1,1)+0.1)

#画边界
plot(rdata, border = "grey", main = "Queen-Style")

#add修改上一个图
plot(queen_nb, coords, col = "dodgerblue",
     add = TRUE, pch = 19, cex = 0.5)

#生成邻接关系(方式二)knearneigh()定义K-near
k4_nb <- knn2nb(knearneigh(coords, k = 4), row.names = IDs) 


#识别邻接关系是否对称 is.symmetric.nb(k4_nb, verbose = FALSE, force = TRUE) #补全邻接关系 n.comp.nb(k4_nb)$nc k4_w <- nb2listw(k4_nb) #计算moran'I moran.test(rdata$TFR96_03, listw = k4_w) #计算moran'I (蒙特卡洛方法) moran.mc(rdata$TFR96_03, listw = k4_w, nsim = 999)

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言学习——输入与输出发布时间:2022-07-18
下一篇:
R语言 case_when 函数发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap