如何计算每行对应的平均值?

时间:2014-07-21 17:04:37

标签: r plot raster

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

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)

给出: enter image description here

所以我现在想要平均值并且在每个纬度只获得一个值,如下所示:

enter image description here

其中R是栅格中显示的值(请注意它们在值方面不同)。

1 个答案:

答案 0 :(得分:2)

您可以单独构建线的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)