开发者们!
我遇到了一个错误信息
如果(obs <= ei),则出现错误:2 * pv,否则出现错误:2 * (1 - pv) :需要TRUE/FALSE的缺失值。
这个错误阻止我从ape包中获取Moran's I函数的值。这是我所做的:
library(ape)
nrstp <- data.frame(
X = c(300226.9, 300224.6, 300226.4, 300226.1, 300224.0, 300226.4, 300225.7, 300226.4, 300226.1, 300226.4, 300226.3, 300226.3, 300227.1),
Y = c(5057949, 5057952, 5057950, 5057950, 5057956, 5057950, 5057950, 5057950, 5057950, 5057950, 5057950, 5057950, 5057949),
V3 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))
nrstp = data.frame(nrstp)
dist = as.matrix(dist(cbind(nrstp$X, nrstp$Y)))
invdist = 1/dist
invdist[is.infinite(invdist)] <- 0
moranI = Moran.I(nrstp$V3, invdist)
该代码的意图是从一系列点中计算Moran's I以检查空间自相关性。到目前为止,这似乎是R中唯一有效的Moran's I函数。经过几次测试(我有数千组点),发现此错误只会发生在输入向量仅具有一个值时(我尝试了其他数字而不是0,它仍然引发此错误)。
请问有人可以帮助我改进这个代码吗?或者有更好的建议来计算Moran's I或者测试线串的空间自相关性(这些点组是线串的原点以及离这样的原点10米缓冲区内最近的其他线串上的点)?
非常感谢您提前的任何帮助!
V3
变量是什么? - Istrel