进行 Pearson 相关时,如何解决 R 中的以下错误?

How do I resolve an error below in R when doing a Pearson correlation?

这是错误信息:

"In writeBin(v, x@file@con, size = x@file@dsize) : problem writing to connection 6: In .rasterFromRasterFile(grdfile, band = band, objecttype) : size of values file does not match the number of cells (given the data type)"

我有 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)

但是,我的结果还是出现了上面的错误,而且即使有输出,也似乎没有任何意义。

此错误信息:

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

很可能表明您的磁盘已满。这可能是您的工作目录所在的磁盘,或者您正在写入文件的任何其他位置。如果您没有指定文件名,您可以检查 tempfile() 以找到存储临时文件的一般位置(实际文件夹在会话之间更改)。您可以通过 rasterOptions() 更改此设置。您还可以通过向栅格函数提供 filename= 参数来避免写入临时文件。