У меня 4000 записей объема в плантациях деревьев. Мне нужно рассчитать Моран I на всю плантацию. Я использую ape библиотека, потому что spdep говорят, что он медленнее. Мой код заключается в следующем:Расчет Моран I с 4000 записями
# Modified from http://www.ats.ucla.edu/stat/r/faq/morans_i.htm
require(ape)
df <- data.frame(
x = 1:2000,
y = 1:2000,
v = rnorm(4000, mean=4))
df.dists <- as.matrix(dist(cbind(df$x, df$y)))
df.dists.inv <- 1/df.dists
diag(df.dists.inv) <- 0
Moran.I(df$v, df.dists.inv)
Когда я запускаю код, я получаю переполнение подобных ошибок.
*Error in if (obs <= ei) 2 * pv else 2 * (1 - pv) :
missing value where TRUE/FALSE needed*
Использование библиотеки далее
require(ape)
require(ff)
ffdf <- as.ffdf(df)
ffdf.dists <- as.matrix(dist(cbind(ffdf$x, ffdf$y)))
ffdf.dists.inv <- 1/df.dists
diag(ffdf.dists.inv) <- 0
Moran.I(ffdf$v, ffdf.dists.inv)
Больше сообщений об ошибках:
*Error in x - m : non-numeric argument to binary operator
In addition: Warning message:
In mean.default(x) : argument is not numeric or logical: returning NA*
Как я могу получить расчет на всю плантацию?
Должен ли я использовать sdep вместо обезьяну библиотеки?
Как можно parallel библиотека решает эту проблему?
Заранее спасибо Juan
Вы должны 'set.seed', чтобы сделать вашу проблему воспроизводимой. Нет необходимости использовать большую матрицу (вы можете использовать небольшую матрицу, и вы получите ту же проблему, если у вас есть некоторые бесконечные значения). – agstudy