R: Versions of 'cbind' and 'rbind' recursively built on...

cBind {Matrix} | R Documentation

## Versions of 'cbind' and 'rbind' recursively built on cbind2/rbind2

### Description

The base functions `cbind` and `rbind` are defined for an arbitrary number of arguments and hence have the first formal argument `...`. For that reason, S4 methods cannot easily be defined for binding together matrices inheriting from `Matrix`.

For that reason, `cbind2` and `rbind2` have been provided for binding together two matrices, and we have defined methods for these and the `'Matrix'`-matrices.

As a substitute for S4-enabled versions of `cbind` and `rbind`, you can use `cBind` and `rBind` with identical syntax and semantic in order to bind together multiple matrices (`"matrix"` or `"Matrix"` and vectors.

### Usage

    cBind(..., deparse.level = 1)
    rBind(..., deparse.level = 1)

### Arguments

`...` | matrix-like R objects to be bound together, see `cbind` and `rbind`.
`deparse.level` | integer determining under which circumstances column and row names are built from the actual arguments' ‘expression’, see `cbind`.

### Details

The implementation of these is recursive, calling `cbind2` or `rbind2` respectively, where these have methods defined and so should dispatch appropriately.

### Value

typically a ‘matrix-like’ object of a similar `class` as the first argument in `...`.

Note that sometimes by default, the result is a `sparseMatrix` if one of the arguments is (even in the case where this is not efficient). In other cases, the result is chosen to be sparse when there are more zero entries is than non-zero ones (as the default `sparse` in `Matrix()`).

### Author(s)

Martin Maechler

### See Also

`cbind2`, `cbind`, `Methods`.

### Examples

    (a <- matrix(c(2:1,1:2), 2,2))
    cbind(0, rBind(a, 7)) # remains traditional matrix

    D <- Diagonal(2)
    cBind(4, a, D, -1, D, 0) # a sparse Matrix

[Package Matrix version 1.1-4 Index]