Rev 8872 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{cbind}\alias{cbind}%%--do C-internal method dispatching !!\alias{rbind}\alias{cbind.data.frame}\alias{rbind.data.frame}\title{Combine R Objects by Rows or Columns}\description{Take a sequence of vector, matrix or data frames arguments and combine by\emph{c}olumns or \emph{r}ows, respectively. There may be methods forother \R classes.}\usage{cbind(\dots)rbind(\dots)}\details{The functions \code{cbind} and \code{rbind} are generic, with methodsfor data frames. The data frame method will be used if anargument is a data frame and the rest are vectors or matrices. Therecan be other methods, for example \code{\link[ts:ts.union]{cbind.ts}}in package \code{ts}.If there are several matrix arguments, they must all have the samenumber of columns (or rows) and this will be the number of columns (orrows) of the result. If all the arguments are vectors, the number ofcolumns (rows) in the result is equal to the length of the longestvector. Values in shorter arguments are recycled to achieve thislength (with a \code{\link{warning}} when they are recycled only\emph{fractionally}).When the arguments consist of a mix of matrices and vectors the numberof columns (rows) of the result is determined by the number of columns(rows) of the matrix arguments. Any vectors have their valuesrecycled or subsetted to achieve this length.}\note{The method dispatching is \emph{not} done via\code{\link{UseMethod}(..)}, but by C-internal dispatching.Therefore, there's no need for, e.g., \code{rbind.default}.The dispatch algorithm is described in the source file(\file{.../src/main/bind.c}) as\enumerate{\item For each argument we get the list of possible classmemberships from the class attribute.\item We inspect each class in turn to see if there is anan applicable method.\item If we find an applicable method we make sure that it isidentical to any method determined for prior arguments.If it is identical, we proceed, otherwise we immediatelydrop through to the default code.}If you want to combine other objects with data frames, it may benecessary to coerce them to data frames first.}\seealso{\code{\link{c}} to combine vectors (and lists) as vectors,\code{\link{data.frame}} to combine vectors and matrices as a data frame.}\examples{cbind(1, 1:7) # the '1' (= shorter vector) is recycledcbind(1:7, diag(3))# vector is subset -> warningcbind(0, rbind(1, 1:3))cbind(0, matrix(1, nrow=0, ncol=4))#> Warning (making sense)dim(cbind(0, matrix(1, nrow=2, ncol=0)))#-> 2 x 1}\keyword{array}\keyword{manip}