【问题标题】:How do I resolve an error below in R when doing a Pearson correlation?在进行 Pearson 相关时,如何解决 R 中的以下错误?
【发布时间】:2016-10-26 13:39:54
【问题描述】:

这是错误信息:

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

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

【问题讨论】:

  • 你能举一个可重现的例子吗? stackoverflow.com/questions/5963269/…
  • 你的磁盘满了吗?
  • 我真的一直在尝试这样做。我的文件是整个非洲大陆的非常大的图像。我已经能够拥有它们的真正删节版本,但仍然找不到在这里复制它们的方法。请问有什么建议吗?
  • 磁盘已满你的意思是我的电脑硬盘空间吗?
  • 是的。可能是您的临时文件夹的磁盘。这将解释“问题写作”

标签: r linear-regression r-raster pearson


【解决方案1】:

这个错误信息:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-09
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多