Learn R Programming

oce (version 0.9-18)

binMean: Bin-count or bin-average f=f(x) or f=f(x,y), based on x or (x,y) values

Description

Bin-count or bin-average f=f(x) or f=f(x,y), based on x or (x,y) values

Usage

binCount1D(x, xbreaks)
binCount2D(x, y, xbreaks, ybreaks, flatten=FALSE)
binMean1D(x, f, xbreaks)
binMean2D(x, y, f, xbreaks, ybreaks, flatten=FALSE, fill=FALSE)

Arguments

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 value component of the return value will consist entirely of NA values.
xbreaks
values of x at the boundaries between bins; calculated using pretty if not supplied.
ybreaks
values of y at the boundaries between bins; calculated using pretty if not supplied.
flatten
if TRUE, then the return value also contains equi-length vectors x, y, z and n, a flattened representation of xmids, ymids, result and
fill
logical value indicating whether to fill NA-value gaps in the matrix. Gaps will be filled as the average of linear interpolations across rows and columns.

Value

  • 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.

Details

The f vector is averaged in bins defined for x. Missing values in f are ignored.

Examples

Run this code
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)

Run the code above in your browser using DataLab