cbind2 {methods} | R Documentation

## Combine two Objects by Columns or Rows

### Description

Combine two matrix-like R objects by columns (`cbind2`) or rows (`rbind2`). These are (S4) generic functions with default methods.

### Usage

    cbind2(x, y)
    rbind2(x, y)

### Arguments

`x` | any R object, typically matrix-like.
`y` | any R object, typically similar to `x`, or missing completely.

### Details

The main use of `cbind2` (`rbind2`) is to be called by `cbind()` (`rbind()`) if these are activated. This allows `cbind` (`rbind`) to work for formally classed (aka ‘S4’) objects by providing S4 methods for these objects. Currently, a call
`methods:::bind_activation(TRUE)`
is needed to install a `cbind2`-calling version of `cbind` (into the `base` name space) and the same for `rbind`.
`methods:::bind_activation(FALSE)` reverts to the previous internal version of `cbind` which does not build on `cbind2`, see the examples.

### Value

A matrix (or matrix like object) combining the columns (or rows) of `x` and `y`.

### Methods

x = "ANY", y = "ANY"
  the default method using R's internal code.
x = "ANY", y = "missing"
  the default method for one argument using R's internal code.

### See Also

`cbind`, `rbind`.

### Examples

    cbind2(1:3, 4)
    m <- matrix(3:8, 2,3, dimnames=list(c("a","b"), LETTERS[1:3]))
    cbind2(1:2, m) # keeps dimnames from m

    ### Note: Use the following activation if you want cbind() to work
    ### ----  on S4 objects -- be careful otherwise!

    methods:::bind_activation(on = TRUE)
    trace("cbind2")
    cbind(a=1:3)# no call to cbind2()
    cbind(a=1:3, four=4, 7:9)# calling cbind2() twice
    untrace("cbind2")

    ## The following fails currently,
    ## since cbind() works recursively from the tail:
    try( cbind(m, a=1, b=3) )

    ## turn off the `special cbind()' :
    methods:::bind_activation(FALSE)

[Package methods version 2.8.1 Index]