binMean {oce} | R Documentation |
Bin-count or bin-average f=f(x) or f=f(x,y), based on x or (x,y) values
binCount1D(x, xbreaks) binCount2D(x, y, xbreaks, ybreaks, flatten=FALSE) binMean1D(x, f, xbreaks) binMean2D(x, y, f, xbreaks, ybreaks, flatten=FALSE, fill=FALSE)
x |
a vector of numerical values. |
y |
a vector of numerical values. |
f |
a vector of numerical values, f=f(x) for the 1D function and f=f(x,y)
for the 2D function. If missing, the |
xbreaks |
values of x at the boundaries between bins; calculated using
|
ybreaks |
values of y at the boundaries between bins; calculated using
|
flatten |
if |
fill |
logical value indicating whether to fill |
The f
vector is averaged in bins defined for x
. Missing
values in f
are ignored.
A list with the following elements: the breaks (xbreaks
, along
with ybreaks
for the 2D case), the break mid-points (xmids
along
with ymids
for the 2D case), the number of data points in each bin,
number
, and (for the “mean” case) the mean value of f
value in
the bins, value
. If flatten
is TRUE
, then the return
value also contains x
and y
(mid-points) and z
(values)
in a flattened grid, with n
being the number in each cell.
For the 1D case, number
and mean
are vectors, whereas they are
matrices for the 2D case. For plotting, the midpoints are more useful than
the breaks, as shown in the examples.
Dan Kelley
library(oce) ## A. fake linear data x <- seq(0, 100, 1) f <- 1 + 2 * x plot(x, f, pch=1) m <- binMean1D(x, f) points(m$xmids, m$result, pch=3, col='red', cex=3) ## B. fake quadratic data f <- 1 + x ^2 plot(x, f, pch=1) m <- binMean1D(x, f) points(m$xmids, m$result, pch=3, col='red', cex=3) ## C. natural data data(co2) plot(co2, col='gray') m <- binMean1D(time(co2), co2) lines(m$xmids, m$result, type='o') ## D. 2D x <- runif(500) y <- runif(500) f <- x + y xb <- seq(0, 1, 0.1) yb <- seq(0, 1, 0.2) m <- binMean2D(x, y, f, xb, yb) plot(x, y) grid() contour(m$xmids, m$ymids, m$result, add=TRUE, levels=seq(0, 2, 0.5), labcex=1) mf <- binMean2D(x, y, f, xb, yb, flatten=TRUE) text(mf$x, mf$y, round(mf$f, 1), col=2)