【问题标题】:How can I calculate the sd? Error in as.double(x): cannot coerce type 'S4' to vector of type 'double'如何计算sd? as.double(x) 中的错误:无法将“S4”类型强制转换为“double”类型的向量
【发布时间】:2020-06-12 12:19:52
【问题描述】:

有人知道我的代码有什么问题吗?我编辑了帖子,因为我没有给你数据。我想计算标准差。均值的计算奏效了。

这是裁剪数据的链接:

https://drive.google.com/drive/folders/1ljT1fzaDlSmn_3j7zHshS5lrV1wBvVQD

library(raster)
r <- brick("filename")
#mean
mean <- mean(r)

#sd
standard_dev <- sd(r)
standard_dev2 <- sd(r, na.rm =TRUE)
standard_deviation <- calc(r, sd)

【问题讨论】:

  • standard_deviation &lt;- sd(r)
  • 请阅读r标签顶部的发布说明。特别是提供完整的可重现代码和输入,以便其他人可以将您帖子中的代码复制并粘贴到 R 中并看到相同的结果。
  • standard_dev standard_dev2
  • 如果您向我们提供reproducible example,我们可能会为您提供进一步的帮助

标签: r raster standard-deviation geotiff


【解决方案1】:

您希望计算 RasterBrick 中每个单元格的 sd。

这是一个独立的、可重复的最小示例

library(raster)
b <- brick(system.file("external/rlogo.grd", package="raster"))

解决方案

x <- calc(b, sd)

x
class      : RasterLayer 
dimensions : 77, 101, 7777  (nrow, ncol, ncell)
resolution : 1, 1  (x, y)
extent     : 0, 101, 0, 77  (xmin, xmax, ymin, ymax)
crs        : +proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs 
source     : memory
names      : layer 
values     : 0, 38.5746  (min, max)

这似乎对您不起作用,因为您有一个名为 sd 的 RasterLayer

sd <- b
calc(b, sd)
#Error in (function (classes, fdef, mtable)  : 
#  unable to find an inherited method for function ‘calc’ for signature ‘"RasterBrick", "RasterBrick"’

在这种情况下,您可以更明确地使用函数namespace (stats)

calc(b, stats::sd)

然后它再次按预期工作。

【讨论】:

    【解决方案2】:

    函数:sd(x, na.rm = FALSE)

    此函数计算 x 中值的标准差。如果 na.rm 为 TRUE,则在计算继续之前删除缺失值。

    参数

    x:数值向量或 R 对象,但不是 as.double(x) 可强制转换为数值的因子。

    na.rm:合乎逻辑。是否应该删除缺失值?

    示例

    sd(1:2) ^ 2
    

    取自访问 RStudio 中的帮助文档:

    ?sd()
    

    根据你的情况:

    standard_deviation <- sd(r)
    

    如果您向我们提供reproducible example,我们可能会为您提供进一步的帮助。

    【讨论】:

      猜你喜欢
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多