【问题标题】:How to compute the average values corresponding to each row?如何计算每一行对应的平均值?
【发布时间】:2014-07-21 17:04:37
【问题描述】:

我有一个栅格(矩阵),我想计算对应于每个纬度的所有值的平均值

library (raster)
r <- raster(nrows=10, ncols=10)
r <- setValues(r, 1:ncell(r))
extent(r) = extent(c(xmn=-180,xmx=180,ymn=-90,ymx=90))
plot(r)

给出:

所以我现在想做平均,每个纬度只得到一个值,如下所示:

其中R 是此处栅格中显示的值(请注意,它们的值不同)。

【问题讨论】:

  • 您想将它绘制在栅格之上还是在新的绘图中?
  • 谢谢@DavidRobinson。两个都请

标签: r plot raster


【解决方案1】:

您可以单独为您的线构造 x 和 y 值。 y 值将只是从栅格顶部到底部的序列:

stepsize = (r@extent@ymax - r@extent@ymin) / r@nrows
yvals = seq(r@extent@ymax - stepsize / 2, r@extent@ymin, -stepsize)

x 值将是栅格中每一行的平均值:

xvals = rowMeans(as.matrix(r))

然后你把它添加到你现有的情节中:

plot(r)
lines(xvals, yvals)

或者您可以将其绘制在新图表上:

plot(xvals, yvals)

【讨论】:

  • 一个小评论。绘制的线应该有相反的斜率?你试过了吗?
  • @hyat 已更正(显然我最初在我的代码中看到并更正了这一点,但在我的答案中没有)
猜你喜欢
  • 1970-01-01
  • 2019-04-03
  • 2014-04-23
  • 1970-01-01
  • 1970-01-01
  • 2021-07-24
  • 2021-06-23
  • 2017-12-23
  • 2018-12-10
相关资源
最近更新 更多