# binning: Construct frequency table from raw data in 1, 2 or 3... In sm: Smoothing Methods for Nonparametric Regression and Density Estimation

## Description

Given a vector, or a matrix with 1, 2 or 3 columns, this function constructs a frequency table associated with appropriate intervals covering the range of `x`.

## Usage

 `1` ```binning(x, y, breaks, nbins) ```

## Arguments

 `x` a vector or a matrix with either one, two or three columns, containing the original data. `y` a vector of data, for example response data, associated with the data in `x`. `breaks` either a vector or a matrix with two columns (depending on the dimension of `x`), assigning the division points of the axis, or the axes in the matrix case. It must not include `Inf`,`-Inf` or `NA`s, and it must span the whole range of the `x` points. If `breaks` is not given, it is computed by dividing the range of `x` into `nbins` intervals for each of the axes. `nbins` the number of intervals on each axis. If `nbins` is not supplied, a value is computed as `round(log(n)/log(2) + 1)`.

## Details

This function is called automatically (under the default settings) by some of the functions of the `sm` library when the sample size is large, to allow handling of datasets of essentially unlimited size. Specifically, it is used by `sm.density`, `sm.regression`, `sm.ancova`, `sm.binomial` and `sm.poisson`.

## Value

In the vector case, a list is returned containing the following elements: a vector `x` of the midpoints of the bins excluding those with 0 frequecies, its associated matrix `x.freq` of frequencies, the co-ordinates of the `midpoints`, the division points, and the complete vector of observed frequencies `freq.table` (including the 0 frequencies), and the vector `breaks` of division points. In the matrix case, the returned value is a list with the following elements: a two-dimensional matrix `x` with the coordinates of the midpoints of the two-dimensional bins excluding those with 0 frequencies, its associated matrix `x.freq` of frequencies, the coordinates of the `midpoints`, the matrix `breaks` of division points, and the observed frequencies `freq.table` in full tabular form.

## References

Bowman, A.W. and Azzalini, A. (1997). Applied Smoothing Techniques for Data Analysis: the Kernel Approach with S-Plus Illustrations. Oxford University Press, Oxford.

`sm`, `sm.density`, `sm.regression`, `sm.binomial`, `sm.poisson`, `cut`, `table`
 ```1 2 3 4 5 6 7 8 9``` ```# example of 1-d use x <- rnorm(1000) xb <- binning(x) xb <- binning(x, breaks=seq(-4,4,by=0.5)) # example of 2-d use x <- rnorm(1000) y <- 2*x + 0.5*rnorm(1000) x <- cbind(x, y) xb<- binning(x, nbins=12) ```