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

时间:2016-06-24 02:44:25

标签: r linear-regression r-raster pearson

这是错误消息:

  

"在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)

OR 直接使用堆叠文件

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 }}

然后使用&#34; calc&#34;在所有像素上计算这些。例如:

r.squared <- calc(y, fun3)

然而,我的结果仍然存在上述错误,即使有输出,它似乎也没有意义。

1 个答案:

答案 0 :(得分:3)

此错误消息:

=COUNTIF(F:F, E2&"*")

很可能表示您的磁盘已满。这可能是您的工作目录的磁盘,也可能是您正在编写文件的任何其他位置。如果未指定文件名,可以检查writeBin(v, x@file@con, size = x@file@dsize) : problem writing to connection 以查找存储临时文件的常规位置(实际文件夹在会话之间更改)。您可以通过tempfile()进行更改。您还可以通过为栅格函数提供rasterOptions()参数来避免编写临时文件。

相关问题