.BG
.FN cbind
.FN rbind
.TL
Build Matrix from Columns or Rows
.CS
cbind(arg1, arg2, ...)
rbind(arg1, arg2, ...)
.AG argi
vector or matrix.  Missing values (`NA's) are allowed.
.RT
matrix composed by adjoining columns (`cbind') or rows
(`rbind').
This matrix may have a `dimnames' attribute.
.PP
If several arguments are matrices, they must contain the same number
of rows (`cbind') or columns (`rbind').
In addition, all arguments that have `names' attributes must have
the same length, which also must match the number of rows/columns
of any matrix arguments.
.PP
Vector arguments are treated as
row vectors by `rbind' and column vectors by `cbind'.
If all arguments are vectors,
the result will contain as many rows or columns as the length of the
longest vector.  Shorter vectors will be repeated.
.PP
The `dimnames' attribute of the returned matrix is constructed
as follows:
for any matrix argument, its `dimnames' attribute is carried over;
for any vector argument with a `names' attribute, the `names' attribute
becomes the row (column) component of `dimnames' for `cbind' (`rbind');
any vector argument may be given with a name that specifies
its corresponding `dimname' entry.
.PP
If arguments are time-series, no attempt is made to relate their time
parameters.  See `tsmatrix' for this case.
Arguments that are `NULL' are ignored.
.SA
`tsmatrix'.
.EX
# add column of ones
cbind(1,xmatr) %*% regr$coef

# add 2 new rows
rbind(matrix,newrow1,newrow2)

# 3 column matrix with column dimnames
cbind(gnp=gnp, income=income, unemployment=unemployment)

# build a matrix, one column at a time
# this is a common paradigm
x <- NULL
for(i in seq(5)) {
    ... # compute z
    x <- cbind(x,z)
}
.KW array
.KW manip
.WR
