Как мне разрешить ошибку ниже в R при выполнении корреляции Пирсона?

Это сообщение об ошибке:

"В writeBin (v, x @ file @ con, size = x @ file @ dsize): проблема с записью в соединение 6: В .rasterFromRasterFile (grdfile, band = band, objecttype): размер файла значений не соответствует количеству ячейки (с учетом типа данных) "

У меня есть 15 растровых файлов одинакового размера и размера. Я просто хочу узнать Корреляцию этих данных во времени (15 лет), т.е. 15 растровых файлов.

Я использовал сценарий ниже:

list  <- c(list.files(pattern = "\\.tif$"))
y <- stack()
for  (i in 1:length(list)){
y <- stack(y,list[i]) }
corT <- layerStats(y, 'pearson', na.rm=TRUE)

ИЛИ Использовал сложенный файл прямо вот так

test = brick ("EOS_ALL_STACK.tif")

corT = layerStats(test, 'pearson', na.rm=TRUE)

Я также пытался использовать эту функцию, чтобы получить коэффициенты корреляции и квадрат r, как это

fun5=function(x) { if (is.na(x[1])){ NA } else { m <- lm(x[1:15] ~ c(1:15));summary(m)$coefficients[1,4]}} #fstatistic[1]
fun5=function(x) { if (is.na(x[1])){ NA } else { m <- lm(x[1:15] ~ c(1:15));summary(m)$coefficients[2,4]}} #fstatistic[2]
fun3=function(x) { if (is.na(x[1])){ NA } else { m <- lm(x[1:15] ~ x[1:15]);summary(m)$r.squared }}

затем с помощью функции «calc» вычислили их по всем пикселям. Например:

r.squared <- calc(y, fun3)

Однако в моих результатах все еще есть указанные выше ошибки, и даже когда есть результат, он не имеет смысла.


person Tyruno    schedule 24.06.2016    source источник
comment
Вы можете привести воспроизводимый пример? stackoverflow.com/ questions / 5963269 /   -  person Hack-R    schedule 24.06.2016
comment
Ваш диск заполнен?   -  person Robert Hijmans    schedule 24.06.2016
comment
Я действительно пытался это сделать. Мои файлы - это очень большие изображения всего африканского континента. Мне удалось получить их действительно сокращенную версию, но я все еще не могу найти способ воспроизвести их здесь. Какие-нибудь советы, пожалуйста?   -  person Tyruno    schedule 24.06.2016
comment
Диск заполнен, вы имеете в виду место на жестком диске моего компьютера?   -  person Tyruno    schedule 24.06.2016
comment
да. Вероятно, диск вашей временной папки. Это объяснило бы проблему написания   -  person Robert Hijmans    schedule 24.06.2016
comment
хмммммм ... Интересно. У меня были проблемы с этим. Это показывает, что у меня больше нет свободного места, но у меня нет никаких данных, хранящихся на моем диске C, а также я не могу найти то, что находится в нем, потому что я работаю с внешнего жесткого диска. Хотя софт у меня на компах установлен диск C.   -  person Tyruno    schedule 24.06.2016


Ответы (1)


Это сообщение об ошибке:

writeBin(v, x@file@con, size = x@file@dsize) : problem writing to connection

Скорее всего, указывает на то, что ваш диск заполнен. Это может быть диск вашего рабочего каталога или любое другое место, где вы пишете файл. Если вы не указываете имя файла, вы можете проверить tempfile(), чтобы найти общее место, где хранятся временные файлы (фактическая папка меняется между сеансами). Вы можете изменить это с помощью rasterOptions(). Вы также можете избежать записи временных файлов, указав filename= аргумент растровым функциям.

person Robert Hijmans    schedule 24.06.2016